$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),而且这不利于只插入用户输入的内容。
人们建议我做什么?
发布于 2011-01-21 22:56:09
使用pg_escape_string转义字符串中的引号字符。
发布于 2011-01-21 22:55:43
使用参数化查询:
pg_query_params
(
$db_conn,
"UPDATE user SET url = $1",
array('What's up with "You doing this"')
);发布于 2011-01-21 23:00:24
转义文本中的双引号,如下所示
$url =“你在做什么\”;
https://stackoverflow.com/questions/4760184
复制相似问题