2014-06-16 103 views
0

我必須使用PHP的mysql_query()函數在單個查詢中執行多個更新查詢。 我附加多個更新語句,形成單個查詢傳遞參數到mysql_query()函數。所以最後我得到了一個聯合查詢,但發現它是錯誤的。當我在執行期間運行該查詢時,我收到錯誤爲「無效查詢」。我不明白髮生了什麼錯誤,所以請幫助我解決這個問題。我非常痛苦。我已經盡力了。我正在給我的代碼參考。如何在PHP中使用MySQL執行多個更新查詢?

在這裏,我通過查詢字符串

越來越可變因素的價值觀我querystirng:localhost/ticker/publish-ticker.php?i=1,2,3&j=3,4

if(isset($_GET['i'])) 
{ 
    $selected_tickers = $_GET['i']; 
} 

if(isset($_GET['j'])) 
{ 
    $selected_twitters = $_GET['j'];  
} 

我在這裏形成查詢

$sql2 = ""; 
if(count($sel_ticker_array) > 0) 
{ 
foreach($sel_ticker_array as $value2) 
{ 
    $tid1 = preg_replace('/[^0-9]/','', $value2);        
    $sql2 .= "update tbl_ticker2 set ticker_flag=0 where id!=$tid1;"; 

} 



foreach($sel_ticker_array as $value) 
{ 
    $tid3 = preg_replace('/[^0-9]/','', $value);         
    $sql2 .= "update tbl_ticker2 set ticker_flag=1,last_used='$todaysdate' where id=$tid3;"; 

} 

} 


if(count($sel_twitter_array) > 0) 
{ 
foreach($sel_twitter_array as $value) 
{ 
    $tid = preg_replace('/[^0-9]/','', $value);        
    $sql2 .= "update tbl_ticker2 set twitter_flag=0 where id!=$tid;"; 

} 



foreach($sel_twitter_array as $value) 
{ 
    $tid = preg_replace('/[^0-9]/','', $value);        
    $sql2 .= "update tbl_ticker2 set twitter_flag=1,last_used='$todaysdate' where id=$tid;"; 

} 
} 

我在這裏執行它,但我越來越輸出爲「無效查詢」

$query3 = mysql_query($sql2); 

    if(!$query3) 
    { 
     die("Invalid Delivery"); 
    } 
    else 
    { 
     echo '<script>'; 
     echo 'alert("Ticker Updated Successfully");'; 
     echo 'location.href="add_ticker.php"'; 
     echo '</script>';   

    } 

請幫幫我。

+1

讓我知道「您應該使用pdo或mysqli」 – Dave

+1

您無法使用'mysql_query'在單個調用中運行多個查詢。如果你想這樣做,你需要使用'mysqli_multi_query()'。 – andrewsi

+0

你可能想看看如何使用SQL的「IN」語句,如'update tbl_ticker2 set twitter_flag = 1,last_used ='$ todaysdate'其中id在($ tid1,$ tid2,$ tid3);'然後看一看在您的foreach語句構建匹配語句的條件列表 – Dave

回答

0

,你不能將它用於多個查詢手冊狀態。

http://php.net/manual/en/function.mysql-query.php

您可以使用庫MySQLi或PDO這一點。

+0

我知道使用mysqli是可能的,但我不知道使用PDO是可能的 - 你有鏈接嗎? – andrewsi

+0

你可以檢查這個答案:http://stackoverflow.com/a/6461110/1108700 – mayy00

+0

謝謝你,這很有趣! – andrewsi

相關問題