2012-02-10 26 views
2

私は私が私の入力フィールドにテキスト&に入力すると、それは挿入に削除されることに気づいた私は、このPDO phpでmysqlにアンパサンド(&)を挿入しますか?

$sql = $db->prepare("INSERT INTO table(value) VALUES(?)"); 
$sql -> execute(array($value)); 

のようなものをやっているのmysql

に値を挿入するためにPDOを使用していますmysql。 mysql注入が保護されていることを示しているので、これは良いと思いますか?では、この値をテキストとして使用したい場合はどうすればいいですか:beer & wine

何をすべきですか?

+0

'&'をエスケープしてはいけません。あなたの文字列はクエリで引用されていますか? – alex

+0

私はこの例で書いたことがありました。私は疑問符を持っていますか? – hellomello

+0

あなたは '? 'を引用符で囲むことはできません。 – alex

答えて

1

私は、これはこれは明らかにBADである

良いですね。特定のシンボルを格納できないデータベースはナンセンスです。このサイトで1つが使用されたとします。 あなたの質問は全くできませんでした。

これは、mysql注入が保護されていることを示していますか?

何も表示されません。アンパサンドは注射とは関係がありません。上記のように、シンボルを削除することは注入保護とは関係ありません。

mysqlの挿入時に削除されます。

これはありません。それはあなたがそれを見ているのと同じです。データベースではなく、他の場所にあるが表示されています。それがあなたの問題です。

挿入する前にデータを確認してください。
データベースを確認してください。アンパサンドを見つける。
次に、アンパサンドが失われた場所を見つけるためにデータフローをトレースします。
その後、質問してください。

+0

無礼な答えは最高です –

+0

Do notそれは失礼だ。それは厳しいかもしれないが、それは失礼ではない。言葉遣いについてはあまり気にしませんが、大きな赤いボタンを持っている人にとっては、それは引き金となるキーワードです。そして、はい、特定の答えは避けているものよりも優れています。 –

関連する問題