目前我正在使用Postgres和PHP。我正在编写一个用户可以填写用户的界面,因此它会被添加到数据库中用户的总记录中。 (很简单)。
最近,我在查询工作方面遇到了很多麻烦。逃避似乎一直是必需的。只是双引号之间的查询本身已经不够了。
我在使用以下查询时遇到问题;
$query = pg_query($dbconnection,"INSERT INTO clients('clientid', 'name', 'ipaddress', 'status') VALUES ('$clientid', '$name', '$ipaddress', '$status' ");
这不起作用。我想还需要更多的逃避。是否有任何第三方工具可用于检查这些postgres语法是否有效?
如果没有,我怎样才能将此查询完全转换为可用的查询?
答案 0 :(得分: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
);
答案 1 :(得分:1)
Try this
$query = pg_query($dbconnection,
"INSERT INTO clients(clientid, name, ipaddress,status) VALUES ('$clientid', '$name', '$ipaddress', '$status' ");
答案 2 :(得分:1)
$query = pg_query($dbconnection, "INSERT INTO clients(clientid, name, ipaddress,status) VALUES ('$clientid', '$name', '$ipaddress', '$status')");
应该做的工作。请注意VALUES
之后的字段名称和右括号周围没有引号。