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
技巧将不起作用-它不应拥有表或超级用户-但您的应用程序可能是表的所有者。)