2011-02-07 9 views
0

PHPスクリプトではタイトル、コンテンツフィールドを更新する必要があります。 "@"をコンテンツに挿入するとエラーが発生します "説明: '@'の近くに構文が正しくありません。" 。?SQLクエリでシンボルをエスケープするには?

$conn = new COM ("ADODB.Connection") 
$db_conn = $conn->open('bla-bla-password...'); 
$query = sprintf("UPDATE page SET title='%s', page_content='%s' WHERE id=%d;", addslashes($title), addslashes($content), intval($id)); 
$rs = $db_conn->execute($query); 
:私は「「記号で固定 は、DB層のためのエスケープやフレームワークのいずれかの解決策があります

私はMS SQL :(

コードをngの** fを使用するように強制してい

+1

http://stackoverflow.com/questions/574805/how-to-escape-strings-in-mssql-using-php 速いからこれを取得グーグル – kirilloid

答えて

4

使用PDO prepared statements特殊文字をエスケープする...のsprintfかにaddslashesない。

+1

または少なくとも、ペストのような 'addslashes()'を避けて、DBのネイティブ引用関数を使用してください。 –

+0

ありがとう。 実際、私はYiiを使うと思っています。それは、最初からコーディングするのではなく、すべての一般的な問題を解決できると思います。 – mapcuk

関連する問題