2016-03-19 12 views
0
foreach ($checkArray as $key => $value) { 

    $deleteUserStmt=$user_home->runQuery("DELETE FROM users WHERE userID = '".$key."' " AND " '".$value."'=1"); 

$deleteUserStmt->execute(); 
} 

はエラーを取得しています:MySqlクエリ:DELETE FROM。構文エラーまたはアクセス違反:1064

Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1' at line 1

$ checkArray $キーは、ユーザーIDと値がtrueまたはfalseです。他のクエリで動作するRunQueryメソッド

私はクエリの構文に問題があると思いますか?

+0

がそれをエコーし​​てご覧ください。 $ del = "DELETE FROM ....."のように。 echo $ del; – rahul

+0

'$ key 'を強調表示する構文からちょうどそれがオフであることを伝えるべきです...あなたはすでにこのコードでSQLインジェクションをしていると仮定します – chris85

+0

なぜ誰かがカラムのためにシングルクォートを入れますか?shouldn' tildaを持つ 'column_name'である – rahul

答えて

0

クエリは、列名に単一引用符を入れてはいけない、このようにする必要があります:
"DELETE FROM users WHERE userID = '$key' AND $value='1'"

+0

を使うべきです働いてくれてありがとう。 – Darius92

関連する問題