$url = "What's up with "You doing this"";
$q = sprintf ("update user set url='%s'",$url);
pg_query ($db_conn, $q)
我想完全按照用户的需要将所有内容插入数据库。我不想逃避任何事情。由于引用,上述内容对我来说不会失败。我知道单引号必须绕过postgresql字符串(url ='%s')。由于我的url字符串中有双引号,因此查询不会更新。我确信我可以为所有双引号执行字符串替换并使它们成为单引号,但如果用户真的想要双引号会怎样。我不能使用字符串替换来反斜杠,因为根据postgresql文档,斜杠将很快被弃用(http://www.postgresql.org/docs/8.1/interactive/sql-syntax.html)加上反对插入只有用户输入的内容。
人们建议我做什么?
答案 0 :(得分:2)
使用pg_escape_string来转义字符串中的引号字符。
答案 1 :(得分:1)
使用参数化查询:
pg_query_params
(
$db_conn,
"UPDATE user SET url = $1",
array('What's up with "You doing this"')
);
答案 2 :(得分:0)
在文本中转义双引号,如
$ url =“你做了什么?”;