Mysql не может выполнять более 1 запроса одновременно - PullRequest
2 голосов
/ 22 декабря 2009

Когда я делаю:

$q = 'insert into movies values("lion king"); select * from movies;';
$result = $db->query($q);
echo mysqli_num_rows($result);

он говорит, что $ result является логическим, а не MySQL результат. если я проверю $ результат следующим образом:

if(!$result) echo 'fail';

выводит «fail».

MySQL не способен обрабатывать более 1 запроса одновременно? Как мне это решить?

Ответы [ 5 ]

7 голосов
/ 22 декабря 2009

Вам нужно использовать mysqli :: multi_query .

3 голосов
/ 22 декабря 2009
$db->query('insert into movies values("lion king");');
$db->query('select * from movies;');
0 голосов
/ 22 декабря 2009

Не путайте, как вы пишете 'запросы' в интерфейсе командной строки MySQL, с тем, как вы делаете это с API.

Команда MySQL просто оборачивает API чем-то вроде оболочки.

Используя API, вы действительно можете выполнять только один запрос за раз. Конечно, клиентская часть API может сделать что-то умное и интерпретировать точки с запятой, разбиваясь на несколько запросов для вас, но это, вероятно, не так уж полезно для достаточного количества людей.

0 голосов
/ 22 декабря 2009
$q = 'insert into movies values("lion king")';
$result = $db->query($q);
$q = 'select * from movies';
$result = $db->query($q);
echo mysqli_num_rows($result);
0 голосов
/ 22 декабря 2009

Вы можете использовать multi_query, который трудно использовать, но, как правило, нет, вы должны использовать только один запрос за раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...