2016-05-17 7 views
-1

php mysqlのカラム名と同じようにphp varを使用するには?php mysqlのカラム名と同じようにphp varを使用するには?

データが更新されない理由を私はコードの下にテストするときに、このサイトへのアクセス

www.example.com/test.php?column=member_no&id=5 

は、私が次に$_GET['column'] = member_no$_GET['id'] = 5

を得るのだろうか? PHPでのMySQLのフィールド名の

$sql = "UPDATE table SET '".mysql_real_escape_string($_GET['column'])."' = '0' WHERE id = '".mysql_real_escape_string($_GET['id'])."' "; 
$dbQuery = mysql_query($sql); 
+0

この_ "UPDATEテーブルのSET \'" .mysql_real_escape_stringを試してみてください($ _ GETの[ '列'])。 "\ '=の '0' WHERE ID =「" .mysql_real_escape_string($ _ GET [ 'ID']) "'" _ –

+0

どのようなエラーが表示されますか? – JYoThI

+0

@mongmongseeseeあなたの答えはあなたの投稿が公開された後にあなたを待っていますが、あなたはそれに反応しませんでした。あなたが解決策を必要としないなら、なぜ質問して時間を無駄にしますか? –

答えて

2

使用して、独自の規則を持っている、あなたが提出された名前に'を使用することはできません、あなたは`または空白のまま使用する必要があります。

$sql = "UPDATE table SET `".mysql_real_escape_string($_GET['column'])."` = '0' WHERE id = '".mysql_real_escape_string($_GET['id'])."'"; 
$dbQuery = mysql_query($sql); 

注:mysql_*は上位のPHPのバージョンで償却し、PHP 7. *から を除去して、だから、それらを使用してmysqli_*または PDOで始まる避けてください。

+0

mysql_real_escape_stringは、*カラム名*に対して適切なエスケープを適用しないことに注意してください。その名前が暗示するように、それは***文字列構文***のためにエスケープされ、逆ティック区切りの列構文ではありません。ボトムライン:これはSQLインジェクションに対して脆弱です。 – deceze

+0

@deceze、私の答えを編集して追加してください。 –

関連する問題