2017-05-25 87 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']; $ result = pg_query($ db,“INSERT INTO programs(title,picture,content)VALUES('”。$ set_title。“','。。$ pic_path。”','“。$ set_content。”') ;“); – 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

我们不应该回答这样明显的重复。 –