два и более INSERT INTO в одном запросе

Klaus

SEO Cthulhu
два и более INSERT INTO в одном запросе

руками в phpmyadmin:
INSERT INTO tabl (col) VALUES ('a');INSERT INTO tabl (col) VALUES ('b');
все ок..

в скрипте:
PHP:
$sql = "INSERT INTO tabl (col) VALUES ('a');INSERT INTO tabl (col) VALUES ('b');";
mysql_query($sql) or die("Query failed \$sql);
получаем Query failed :(
т.е. работает только в том случае, если INSERT INTO только один.
хотя в phpmyadmin перевод запроса в пхп код - дает код где два INSERT INTO, т.е. предполагается, что должно работать.

хотел вынести запрос из цикла, а он упирается :)

Покажите пальцем пжлста, в чем моя ошибка?
 

Кром

Новичок
Klaus, перед тем как пользоватся фунцией рекомендуется ознакомится с тем как она работает:
http://www.php.net/mysql_query

Note: The query string should not end with a semicolon.
Т.е. два запроса передать в нее нельзя.
 

Klaus

SEO Cthulhu
to Maxim Matyukhin
спасибо, это работает

to Кром
сорри, в англ пока не силен, но у меня есть русский ман, там к сожалению ничего по этому поводу не написано..
более того, в русском мане есть строка "Примечание: строка запроса не должна заканчиваться точкой с запятой (;)." однако запрос работает и с ;
+ сбил с толку phpmyadmin - который явно переводит в php-код два INSERT INTO как указано в моем посте выше.
 

Кром

Новичок
Klaus, если не силен в английском возьми словарь.

>однако запрос работает и с ;
Пример:
PHP:
<?
echo 'test'
?>
Так тоже работает. Но если ты допишь в конец кода еще одну строку, будет ошибка.
Почему? Потому что так писать НЕЛЬЗЯ! А если ты начинаешь изучать PHP учись писать правильно, а не так как тебе заблагорассудиться.

>который явно переводит в php-код два INSERT INTO
Показывает запрос для пользователя и выполняет запрос, это разные вещи.
 

Klaus

SEO Cthulhu
to Кром
я все понял, спасибо
тут просто вопрос в правильности перевода и понимании написаного..

фраза "строка запроса не должна заканчиваться точкой с запятой (;)" мной была неправильно интерпритирована, т.е. я должен был сразу понять, что это означает следущее:
" Вы конечно знаете, что в php каждая команда должна заканчиваться ";". Из этого следует, что если мы говорим что команда не должна заканчиваться ";" , то значит второй команды быть не может, т.к. если вы поставите ";" - это противоречит нашей просьбе, а если вы не поставите ";" между командами, то это будет одна команда, а не две как вы хотите, т.е. работать в любом случае не будет

в общем я протупил, признаю..
но теперь я все понял, спасибо :)
 
Сверху