0

テーブル名の更新に問題があります

mysql_query("UPDATE table_name SET table = '$_POST[id]' WHERE room = '$_POST[room]','row[bed]'");
4

3 に答える 3

2

素敵なSQL インジェクション攻撃の脆弱性、そして素敵な SQL 構文エラー....

構文エラーを警告するエラー処理はありません。

... WHERE room = '$_POST[room]','row[bed]'")
                               ^^^^^^^^^^^--- illegal syntax

最低限、次のようなものが必要です

$result = mysql_query(...) or die(mysql_error());

クエリが成功すると想定しないでください。常に失敗をチェックし、成功をうれしい驚きとして扱います。

于 2013-10-18T16:04:26.873 に答える
0

テーブルとフィールドが正確に何であるかはわかりませんが、以下のように試すことができます:

mysql_query("UPDATE table_name SET table = '$_POST[id]' WHERE room = '$_POST[room]' and FieldName = 'row[bed]'");

また

mysql_query("UPDATE table_name SET table = '$_POST[id]' WHERE room IN( '$_POST[room]','row[bed]')");
于 2013-10-18T16:04:18.670 に答える
0

backtits 内で特別な言葉を使用する必要があります

mysql_query("UPDATE table_name SET `table` = '$_POST[id]' WHERE room = '$_POST[room]','row[bed]'");
于 2013-10-18T16:03:11.160 に答える