2017-05-25 6 views
-2

データベースに文字列を挿入しようとしていますが、一重引用符( ')が含まれているとクエリが無効になります。クエリの挿入バグ

$set_content=$_POST['content']; 

$result = pg_query($db,"INSERT INTO programmes(title,picture,content) VALUES('$set_title','$pic_path','$set_content');"); 
+0

代わりのSQLインジェクションの脆弱性を自分で作り、プリペアドステートメントを使用すると、あなたはこの問題を持っていません。http://php.net/manual/en/function.pg-prepare.php –

+0

あなたは単一引用符の中にPHP変数を使用することはできません。 以下のクエリで試してください $ set_content = $ _ POST ['content']; "$ set_content"、 "'$ pic_path' ')$ result = pg_query($ db、" INSERT INTOプログラム(タイトル、画像、コンテンツ)VALUES(' $ set_title。 ; "); – gyaan

答えて

-1

http://php.net/manual/en/function.pg-query.php

ユーザーが入力したデータの警告

文字列の補間は非常に危険であると は、SQLインジェクションの脆弱性につながる可能性があります。ほとんどの場合 pg_query_params()は、クエリー文字列に置き換えるのではなく、ユーザ指定の値を パラメータとして渡すことを推奨します。

$result = pg_query_params($db,"INSERT INTO programmes(title,picture,content) VALUES($1,$2,$3);",Array($set_title,$pic_path,$set_content)); 
+0

ありがとうございました!それはうまくいった。クエリは完全に今通過しています。 –

+1

私たちはそのような露骨な複製に答えるべきではありません。 –