2012-02-09 7 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 has:

$my_array=$_POST['my_array']; 

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

エラーを示すBu。

解決策が必要です。

+1

のエラーが表示されますか? –

+0

次のようなものです:残念ですが、更新クエリをテーブルpost_comment通知に実行できませんでした
SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文が1行目の「Array」の近くで使用されるようにしてください。 –

答えて

1

あなたは文字列にあなたの配列を変換する必要があります:あなたが真剣にあなたの入力を検証する必要があり、

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

そして、単に「(あなたの配列がコンマが破を使用するので、分離されなければならない$ _POST

+0

したがって、 'IN'キーワードはコンマで区切られた文字列で検索されます。 –

+0

ええ、まあ、SQL文字列でPHP配列を使うことはできません。それは 'IN(1,2,3)'のように見える必要があります。 – Thorsten

1

を使用しません、 "、$ my_array)を使用する代わりに、$ my_array

+0

implodeは配列ではなく文字列を返します。 –

関連する問題