【问题标题】:Having difficulties with pg_query(); in phppg_query() 遇到困难;在php中
【发布时间】:2013-10-18 01:15:37
【问题描述】:

目前我正在使用带有 PHP 的 Postgres。我正在编写一个用户可以填写用户的界面,因此它被添加到数据库中用户的总记录中。 (很简单)。

最近,我在让查询正常工作时遇到了很多麻烦。逃避似乎一直都是必需的。仅双引号之间的查询本身已经不够了。

以下查询有问题;

$query = pg_query($dbconnection,"INSERT INTO clients('clientid', 'name', 'ipaddress',     'status') VALUES ('$clientid', '$name', '$ipaddress', '$status' ");

这不起作用。我想还有更多的逃避需要。是否有任何第三方工具可用于检查这些 postgres 语法是否有效?

如果没有,我怎样才能准确地将这个查询变成一个可用的?

【问题讨论】:

    标签: php sql postgresql


    【解决方案1】:

    使用pg_query_params()处理转义,避免SQL注入:

    $query = pg_query_params(
      $dbconnection,
      'INSERT INTO clients(clientid, name, ipaddress,status) VALUES ($1, $2, $3, $4);', // placeholders
       array($clientid, $name, $ipaddress, $status) // content
    );
    

    【讨论】:

      【解决方案2】:
         Try this
         $query = pg_query($dbconnection,
         "INSERT INTO clients(clientid, name, ipaddress,status) VALUES ('$clientid', '$name', '$ipaddress', '$status' ");
      

      【讨论】:

      • 建议您为什么认为这会解决问题。
      【解决方案3】:
      $query = pg_query($dbconnection, "INSERT INTO clients(clientid, name, ipaddress,status) VALUES ('$clientid', '$name', '$ipaddress', '$status')");
      

      应该做的工作。注意VALUES 后面的字段名称和右括号没有引号。

      【讨论】:

        猜你喜欢
        • 2011-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-25
        • 1970-01-01
        • 1970-01-01
        • 2021-11-20
        • 1970-01-01
        相关资源
        最近更新 更多