Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中同时执行多个mysql查询?_Php_Mysql_Sql - Fatal编程技术网

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

如何在PHP中同时执行多个mysql查询?,php,mysql,sql,Php,Mysql,Sql,我想要一个选择查询和一个插入查询,我想要使用函数(mysql\u query)一起执行它们,但它不起作用。 我打算做这样的事情: $sql="select * from texts; insert into date ('time') values ('2012');"; mysql_query($sql); 有什么办法吗?MySQL不允许在一条语句中传递多个select查询。MySQL\u query()发送一个唯一的查询(不支持多个查询)。 这是默认的行为。但是有一个旁路 但是,如果执行此

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

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

有什么办法吗?

MySQL不允许在一条语句中传递多个select查询。

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

但是,如果执行此操作,第一次查询的结果代码将作为
mysql\u query()
的输出

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

因此,编辑您的
mysql\u connect()
代码以匹配以下内容:

mysql_connect($host, $username, $password, false, 65536);
警告:

  • 对于给定的
    $query
    中的第一个查询,您将获得
    mysql\u query($query)
    的结果。您可以尝试将
    131072
    65536
    串联,以获得多个结果
  • 这在PHP<4.3.0时不起作用
  • 如果在php.ini中将
    sql.safe_mode
    设置为1,则此操作将不起作用

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

    mysql\u 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
    }
    ?>
    

    没有一个mysql api可以同时处理多个查询,即使是mysql控制台实用程序也会解析您的输入并执行一个又一个查询,而php的mysql_查询则不能。您可以编写自己的函数来执行此操作,也可以将所有查询放在一个数组中,并对循环中的每个元素执行mysql\u查询。

    您可以使用mysqli\u multi\u查询函数,但需要使用PHP mysqli扩展。(我建议您使用mysqli而不是PHP的mysql扩展,因为它包含更多的功能和设施)

    mysql\u query()
    发送一个唯一的查询


    对于多个查询,您可以看到

    我认为没有这种类型的查询。。。但如果有,请让我知道:)@caesar,您希望输出什么?。“文本”的元组或插入的状态
    mysql\u query()
    不支持执行多个查询。您可以尝试使用INSERT。。。选择mysql的特性。完整文档您可以执行2个查询,因为它们似乎不相关。。。您还可以创建一个执行插入和选择的过程。哦,是您吗:)哈哈,对我来说这是一个新信息(65536)
    <?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
    }
    ?>