【问题标题】:What is the maximum number of queries in a multi query?多查询中的最大查询数是多少?
【发布时间】:2012-09-29 17:12:57
【问题描述】:

使用 php 运行多查询时是否有最大查询数?

  $conn = new mysqli($db_hostname, $db_username, $db_password);
    if (mysqli_connect_errno()) {
      exit('Connect failed: '. mysqli_connect_error());
    }  

   $sql = "CREATE TABLE IF NOT EXISTS......";
   $sql .= "CREATE TABLE IF NOT EXISTS......";
   $sql .= "CREATE TABLE IF NOT EXISTS......";
   $sql .= "INSERT ......";
   $sql .= "INSERT ......";
    <and so on>
    mysqli_autocommit($conn, false);
    mysqli_multi_query($conn, $sql);
    mysqli_rollback($conn); 

【问题讨论】:

  • 只是出于好奇,我的代码在几次查询后似乎冻结了。但如果我单独运行它们,代码就可以工作
  • 测试此代码后会发生什么?
  • 一些前端查询有效。但有些最终不起作用。我尝试在另一个 php 文件中的单独查询中运行它们并且它有效

标签: php mysql mysqli


【解决方案1】:

我现在不知道 PHP 函数 mysqli_multi_query 是通过使用 MySQL API 的多查询可能性实现的,还是这会拆分 PHP 端的语句。

但是您可以尝试在您的my.cnf 中提高net_buffer_length butmax_allowed_packet。但我的印象是这些是每个语句的缓冲区。

在这里绊倒的人要清楚,不是像OP那样出于好奇,而是因为他们碰到了最大值:通常有other waysmany INSERTs

【讨论】:

  • 我知道这个线程有点老了,但是通过 PHP 源代码(5.6) mysqli_multi_query 函数调用 mysql_real_query 并且不会在内部缓冲查询请求。
猜你喜欢
  • 2013-04-26
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 2011-12-01
  • 1970-01-01
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多