2012-02-09 50 views
0

包含mysql表主鍵值的數組將通過一個 ajax調用來傳遞到一個PHP頁面,並從PHP頁面,包含陣列中的主鍵將被更新mysql,通過與數組中的主鍵進行ajax調用來更新多行

JS片段:

<script type="text/javascript"> 

$(document).ready(function(){ 


    var my_array=[1,2.,4,5,6]; 

    $.post("array_post.php",{ 

     my_array:my_array 

     },function(response){ 

      alert(response); 
      } 

    ); 



    }); 


</script> 

'ID' 是主鍵。 array_post.php有:

$my_array=$_POST['my_array']; 

$sql="UPDATE my_table SET my_col=1 WHERE id IN ($my_array)"; 

Bu顯示錯誤。

我需要解決方案。

+1

顯示哪個錯誤? – 2012-02-09 10:47:13

+0

類似:抱歉無法將更新查詢執行到表post_comment通知
您的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊,在第一行 – 2012-02-09 10:53:27

回答

1

你需要你的數組轉換爲字符串:

$sql="UPDATE my_table SET my_col=1 WHERE id IN (" . implode(',', $my_array) . ")"; 

而且,你應該認真驗證您的輸入,而不是使用$ _ POST

+0

的'Array'附近使用正確的語法,所以'IN'關鍵詞在逗號分隔的字符串中搜索,而不是在數組中,對嗎? – 2012-02-09 11:01:50

+0

是的,你只是不能在SQL字符串中使用PHP數組。它需要看起來像'IN(1,2,3)'。 – Thorsten 2012-02-09 11:10:52

1

您的陣列必須用逗號分開,以便使用破滅(」 ,「$ my_array)而不是使用$ my_array

+0

implode返回一個字符串,而不是一個數組 – 2012-02-09 11:01:12