Как выполнить несколько запросов mysql вместе в PHP?

Я хочу, чтобы запрос select и запрос на вставку, который я хочу сделать вместе, используя функцию (mysql_query), но она не работает. Я связываюсь, чтобы сделать что-то вроде этого:

$sql="select * from texts; insert into date ('time') values ('2012');"; mysql_query($sql); 

есть ли способ сделать это?

Solutions Collecting From Web of "Как выполнить несколько запросов mysql вместе в PHP?"

mysql_query() отправляет уникальный запрос (несколько запросов не поддерживаются) . Это поведение по умолчанию. Однако для этого есть обход.

Однако, если вы это сделаете, то будет mysql_query() только код результата первого запроса в качестве вывода mysql_query() .

Вам просто нужно передать флаг 65536 в качестве 5-го параметра mysql_connect. флаг определяется в флажках MySQL Client .

 #define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */ #define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */ 

Поэтому отредактируйте свой код mysql_connect() чтобы он соответствовал этому:

 mysql_connect($host, $username, $password, false, 65536); 

Предупреждение:

  1. Вы получите результат mysql_query($query) для первого запроса только в заданном $query . Вы можете попробовать 131072 с 65536 для получения нескольких результатов.
  2. Это не будет работать на PHP <4.3.0
  3. Это не будет работать, если sql.safe_mode устанавливается как 1 в php.ini

Другой альтернативой будет использование mysqli вместо библиотеки mysql . Он поддерживает $mysqli->multi_query() и дает выходные данные в массиве для каждого запроса.

MySQL не позволяет передавать более одного запроса select в одном выражении.

Ни один из mysql api не может обрабатывать несколько запросов одновременно, даже утилита mysql consol анализирует ваш ввод и выполняет один запрос за другим, а mysql_query php этого не делает. Вы можете просто написать свою собственную функцию или просто поместить все запросы в массив и выполнить mysql_query для каждого элемента цикла.

Вы можете использовать функцию mysqli_multi_query, но с расширением mysqli PHP. (Я рекомендую использовать mysqli вместо расширения mysql PHP, поскольку он включает в себя гораздо больше функций и возможностей)

mysql_query() отправляет уникальный запрос

см. mysql_query

для множественного запроса вы можете увидеть mysqli

mysql_query() не поддерживает выполнение нескольких запросов обычным способом. используйте что-то вроде ниже.

 <?php $str="query1;query2;"; // say $str="select * from texts; insert into date ('time') values ('2012');"; $query = explode(';',$str); // Run the queries foreach($query as $index => $sql) { $result = mysql_query($sql); // Perform an additional operations here } ?>