1

これを実行したい:

UPDATE users SET about="$about" ;

しかし、私の$aboutが含まれている=場合、スクリプトは間違いを犯し、次のようなことをします。

$about="<img src=somevalue.jpg />";

スクリプトはこれをデータベースに追加します。

<img src

そしてそれ以上は何もありません。

4

3 に答える 3

2

二重一重引用符を使用して試してください。

$about = '<img src=somevalue.jpg />';
$query = "UPDATE users SET about='$about'";

補足として、変数のSQL Injection値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。PreparedStatements

于 2013-03-03T11:44:09.853 に答える
0

The issue is with putting quotes around string. I'm not very familiar with how php replaces variables in strings but you can try following for MS SQL server:

Set about ="'$about'"

于 2013-03-03T11:52:01.793 に答える
0

これは「SQL インジェクション」と呼ばれます。とにかくそれを処理する必要があるので、ググってください。

ステートメント内で使用するすべての入力をエスケープする必要があります。それ以外の場合は何でも発生します。単純に可変コンテンツを含めて構成されたステートメントを使用するのではなく、より優れたエンジンを使用することをお勧めします。を見て、PDOそれがどのように機能するかを見てください。ステートメントを「準備」し、パラメーターを配列として渡します。PDO は、必要に応じてきれいにエスケープするように注意します。その方がはるかに安全です。

于 2013-03-03T11:44:48.427 に答える