postgresql引用问题

时间:2011-01-21 14:53:06

标签: php database postgresql

$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)加上反对插入只有用户输入的内容。

人们建议我做什么?

3 个答案:

答案 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 =“你做了什么?”;