2017-12-02 10 views
-1

をいけない仕事:シンプルなMySQLの更新、私は私の問題を見つけるために、問題がある

$sql = "UPDATE work 
      SET tmp = :tmp 
      WHERE id = $id 
      LIMIT 1"; 
    $query = $database->prepare($sql); 
    $query->execute(array(
     ':tmp' => 0 
    )); 

警告:PDOStatementに::実行():SQLSTATE [42000]:構文エラーまたはアクセス違反:1064あなたは、あなたの中にエラーが発生しているがSQL構文。あなたのMariaDBサーバのバージョンに対応するマニュアルをチェックして、正しい構文が4行目の 'LIMIT 1'の近くで使用するようにしてください。

なぜそれが効いていないのでしょうか?

+0

$ id変数はまだSQLインジェクションに対して脆弱です –

+1

クエリをダンプします。おそらく '$ id'は空です。 –

+0

@PaulSpiegel問題を修正していただきありがとうございます。私は再びすべてをチェックして倍増し、それが助けになりました。 – user3924331

答えて

0

構文エラーがあなたの:tmpを参照していると思います。「temp」のような文字列で置き換えてみてください。

関連する問題