0

我正在尝试为以下内容获取正确的语法。在这种情况下 $post_pub = 1

$sql='SELECT "Publications"."Pub_ID", "Publications"."ART_TITEL" FROM "Publications" where "Pub_ID"="$post_pub"';

php报错:列“$post_pub”不存在

我偶然发现了 pg_query_params,这感觉是正确的方向,但我需要一些帮助。我怎样才能让它工作?

4

2 回答 2

3

pg_connect尽管我认为您需要这样的东西,但我从未使用过:

$sql='SELECT "Publications"."Pub_ID", "Publications"."ART_TITEL" 
FROM "Publications" 
where "Pub_ID"=$1 ';


$result = pg_query_params($dbconn, $sql, array($post_pub));
于 2017-04-17T20:56:33.170 回答
0

问题是变量周围的双引号。Postgres 将其理解为“数据库对象”的名称,在这部分查询中,是一列。为避免它,请尝试使用:

$sql='SELECT "Publications"."Pub_ID", "Publications"."ART_TITEL" FROM "Publications" where "Pub_ID"='."$post_pub";

还可以考虑迁移到 PDO - 这种用法是对 sql 注入的直接邀请。例如,如果用户有足够的权限,设置$post_pub为将删除所有数据。0 or (delete from Publications)"

于 2017-04-17T20:31:30.473 回答