簡體   English   中英

mysqli_multi_query(); 大量的意見書

[英]mysqli_multi_query(); numerous submissions

我有一個准備3個不同SQL提交的PHP腳本。 SQL對所有它們均有效。 如果我交換下面的IF語句的順序,它們都可以工作。 如果首先使用$ratesSQL ,則1)和2)均可工作。 如果其他兩個都是第一個,則只有1)有效。

SQL:

$sqlRates = "
LOAD XML LOCAL INFILE '/xx/yy/zz/example.xml'
REPLACE
INTO TABLE rates
ROWS IDENTIFIED BY '<row>'";

$vixSQL$aaaSQL都是很多REPLACE INTO語句。 例:

REPLACE INTO aaa (date,value) VALUES ('2016-01-29','4.05'); REPLACE INTO aaa (date,value) VALUES ('2016-01-28','4.07');

IF語句:

1)成功提交以下內容。 $ ratesSQL大約有300行數據。

if (mysqli_multi_query($dbc, $ratesSQL)) {
    echo "<h3>Rates Load Successful</h3><br>";
} else {
    echo "<h3>Rates Load Error</h3><br>";
}

2)成功提交。 約8000行數據。

if (mysqli_multi_query($dbc, $vixSQL)) {
    echo "<h3>VIX Load Successful</h3><br>";
} else {
    echo "<h3>VIX Load Error</h3><br>";
}

3)提交失敗,大約8000行數據

if (mysqli_multi_query($dbc, $aaaSQL)) {
    echo "<h3>AAA Load Successful</h3><br>";
} else {
    echo "<h3>AAA Load Error</h3><br>";
}

$ratesSQL提交僅約300行數據,而其他兩行約8000行。是因為此數據量導致了我的問題? 有什么建議可以解決嗎?

下面結合每個問題的查詢允許我進行全面了解。 仍然令人困惑,為什么單獨查詢失敗。 任何其他信息都會被認可

合並所有查詢,並一次使用mysqli_multi_query

注意:多個查詢應以分號連接

$finalSqlQuery = $sqlRates .';'.$vixSQL.$aaaSQL;

if(mysqli_multi_query($dbc,$finalSqlQuery)){
   //Then you can use mysqli_store_result()
   do{
      if($result = mysqli_store_result($dbc)){
         //Note that mysqli_store_result will return a buffer object and false on query error.

          print_r($result);/*display and check what is the results of the query if are you sure that the query doesn't have an error just to check the result of the query*/
          mysqli_free_result($result);
      }

        /* print divider */
        if (mysqli_more_results($dbc)) {
            printf("-----------------\n");
        }


   }while(mysqli_next_result($dbc));
   $result = mysqli_store_result($dbc)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM