Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在PostgreSQL中插入带单引号的值_Php_Sql_Postgresql - Fatal编程技术网

Php 在PostgreSQL中插入带单引号的值

Php 在PostgreSQL中插入带单引号的值,php,sql,postgresql,Php,Sql,Postgresql,我想用一个带引号的值运行以下查询 INSERT INTO web_camp_keywords (web_id, keyword) VALUES (195, 'abc'hotels') 我只想增加abc酒店的价值。我用了反斜杠,但没用 INSERT INTO web_camp_keywords (web_id, keyword) VALUES (195, 'abc\'hotels') 如何解决此问题?您可以使用另一个单引号来转义单引号 INSERT INTO web_camp_keywords

我想用一个带引号的值运行以下查询

INSERT INTO web_camp_keywords (web_id, keyword) VALUES (195, 'abc'hotels')
我只想增加abc酒店的价值。我用了反斜杠,但没用

INSERT INTO web_camp_keywords (web_id, keyword) VALUES (195, 'abc\'hotels')

如何解决此问题?

您可以使用另一个单引号来转义单引号

INSERT INTO web_camp_keywords (web_id, keyword) 
VALUES (195, 'abc''hotels')
但我个人认为你应该使用


除其他外,使用带绑定参数的预处理语句是帮助防止web应用程序中最大安全漏洞的最简单方法之一。

如Chris Moutray和其他人所述,最好使用pdo和预处理语句。下面是一个示例,说明如何准备语句,为语句提供值,然后执行它。我漏掉了连接

$statement = $pdo->prepare("insert into web_camp_keywords (web_id, keyword) values (:id, :keyword)");
$statement->bindValue(':id', 195);
$statement->bindValue(':keyword', "abc'hotels");
$statement->execute();

尝试将关键字(web\u id,关键字)值(195,“abc”“hotels”)插入到web\u camp\u关键字中。但为什么不准备一份声明呢。我对准备好的报表没有经验。我试试看。@Asurya那么你的应用程序充满了所谓的SQL注入安全漏洞。想象一下,如果在表单中输入
abc'hotels
的用户改为输入
abc';从网页中删除关键词--或更糟,
abc';丢弃模式公共级联--?splat,这就是你的整个数据库。请参阅(注意:如果您的应用程序仅使用所需的最低权限进行连接,
DROP SCHEMA
技巧将不起作用-它不应拥有表或超级用户-但您的应用程序可能是表的所有者。)