2011-12-01 11 views

答えて

56

ダブルアポストロフィ:

'he doesn''t work for me' 
+3

これをプログラムのバックエンドから実行する場合は、パラメータ化されたクエリを使用します。 SQLインジェクション攻撃が実際に発生しています。 – Andrew

3

あなたはASP.NETを通じてレコードを追加している場合、あなたはあなたのような値を渡すためにSqlParameterオブジェクトを使用することができ、この

INSERT INTO exampleTbl VALUES('he doesn''t work for me') 
7
INSERT INTO exampleTbl VALUES('he doesn''t work for me') 

を試してみてくださいユーザーが入力するアポストロフィについて心配する必要はありません。

-3

次のように表示する場合は、バックスラッシュ '\'を使用できますあなたのテキストの中の一重引用符。

INSERT INTO exampleTbl VALUES( 'He doesn(\')t ');

+0

\ ' – Hoque

+1

の前後に必要な白い括弧は、SQL Serverでこれをエスケープする正しい方法ではありません。 –

-2

はい、SQL Serverでは、SQLインジェクション攻撃のためにテーブルフィールドに一重引用符を挿入できません。したがって、保存する際に単一のアポストロフィーを二重に置き換える必要があります。

(彼は私のために動作しません)=>でなければなりません(彼は私のために仕事をdoesn''t)

+4

「SQL ServerはSQLインジェクション攻撃のためにテーブルフィールドに一重引用符を挿入できません」ということは正しい理解ではありません。 –

0
$value = "he doesn't work for me"; 

$new_value = str_replace("'", "''", "$value"); // it looks like " ' " , " ' ' " 

INSERT INTO exampleTbl (`column`) VALUES('$new_value') 
+0

これはPHPに関するものではなく、特にSQLに関するものです – Bono

-1
insert into table1 values("sunil''s book",123,99382932938); 

単一アポストロフィの内の二重アポストロフィを使用し、 それは

に動作します
関連する問題