0

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

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

我在使用以下查询时遇到问题;

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

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

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

4

3 回答 3

3

使用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
);
于 2013-10-10T10:25:36.167 回答
1
   Try this
   $query = pg_query($dbconnection,
   "INSERT INTO clients(clientid, name, ipaddress,status) VALUES ('$clientid', '$name', '$ipaddress', '$status' ");
于 2013-10-10T10:18:42.023 回答
1
$query = pg_query($dbconnection, "INSERT INTO clients(clientid, name, ipaddress,status) VALUES ('$clientid', '$name', '$ipaddress', '$status')");

应该做的工作。请注意,字段名称和 . 之后的右括号周围没有引号VALUES

于 2013-10-10T10:23:08.423 回答