我想要一个选择查询和一个插入查询,我想使用函数 (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);
警告:
- 对于给定的
$query
中的第一个查询仅,您将获得mysql_query($query)
的结果。您可以尝试将131072
与65536
连接起来以获得多个结果。 - 这不适用于 PHP < 4.3.0
- 如果在 php.ini 中将
sql.safe_mode
设置为 1,这将不起作用
另一种选择是使用 mysqli
而不是 mysql
库。它支持 $mysqli->multi_query()
并在数组中为每个查询提供输出。
关于php - 如何在 PHP 中同时执行多个 mysql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10663046/