これを実行したい:
UPDATE users SET about="$about" ;
しかし、私の$about
が含まれている=
場合、スクリプトは間違いを犯し、次のようなことをします。
$about="<img src=somevalue.jpg />";
スクリプトはこれをデータベースに追加します。
<img src
そしてそれ以上は何もありません。
二重一重引用符を使用して試してください。
$about = '<img src=somevalue.jpg />';
$query = "UPDATE users SET about='$about'";
補足として、変数のSQL Injection
値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。PreparedStatements
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'"
これは「SQL インジェクション」と呼ばれます。とにかくそれを処理する必要があるので、ググってください。
ステートメント内で使用するすべての入力をエスケープする必要があります。それ以外の場合は何でも発生します。単純に可変コンテンツを含めて構成されたステートメントを使用するのではなく、より優れたエンジンを使用することをお勧めします。を見て、PDO
それがどのように機能するかを見てください。ステートメントを「準備」し、パラメーターを配列として渡します。PDO は、必要に応じてきれいにエスケープするように注意します。その方がはるかに安全です。