Mysql не может выполнять более одного запроса за раз

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

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

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

 if(!$result) echo 'fail'; 

он выводит «сбой».

Разве mysql не способен обрабатывать более одного запроса за раз? Как я могу это решить?

 $db->query('insert into movies values("lion king");'); $db->query('select * from movies;'); 

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

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

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

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

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

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