php - 如何在 PHP 中同时执行多个 mysql 查询?

标签 php mysql sql

我想要一个选择查询和一个插入查询,我想使用函数 (mysql_query) 将它们一起执行,但它不起作用。 我想做这样的事情:

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

有什么办法吗?

最佳答案

mysql_query() 发送唯一查询(不支持多个查询)。 这是默认行为。但是有一个旁路。

但是,如果您这样做,第一个查询的结果代码将单独作为 mysql_query() 的输出给出。

您只需将标志 65536 作为 mysql_connect 的第 5 个参数传递。该标志在 MySQL Client flags 中定义.

#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. 对于给定的 $query 中的第一个查询,您将获得 mysql_query($query) 的结果。您可以尝试将 13107265536 连接起来以获得多个结果。
  2. 这不适用于 PHP < 4.3.0
  3. 如果在 php.ini 中将 sql.safe_mode 设置为 1,这将不起作用

另一种选择是使用 mysqli 而不是 mysql 库。它支持 $mysqli->multi_query() 并在数组中为每个查询提供输出。

关于php - 如何在 PHP 中同时执行多个 mysql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10663046/

相关文章:

mysql - 选择树节点的所有后代

php - Laravel 中列数不等的联合

mysql - SQL中的重复数据

php - 将字符串日期 "Thursday 19th April 2012"转换为日期时间进行操作

php - 将重音字符从 PHP 脚本保存到 Oracle DB

php - org.json.JSONException : Value Connected of type java. lang.String 无法转换为 JSONObject

MySQL 遍历表行,运行另一个查询,连接结果

mysql - 这个查询可以吗?

mysql - 1615 准备好的语句需要在 codeigniter 中重新准备

php - 使用php同步不同数据库中的相同表