我正在尝试为以下内容获取正确的语法。在这种情况下 $post_pub = 1
$sql='SELECT "Publications"."Pub_ID", "Publications"."ART_TITEL" FROM "Publications" where "Pub_ID"="$post_pub"';
php报错:列“$post_pub”不存在
我偶然发现了 pg_query_params,这感觉是正确的方向,但我需要一些帮助。我怎样才能让它工作?
我正在尝试为以下内容获取正确的语法。在这种情况下 $post_pub = 1
$sql='SELECT "Publications"."Pub_ID", "Publications"."ART_TITEL" FROM "Publications" where "Pub_ID"="$post_pub"';
php报错:列“$post_pub”不存在
我偶然发现了 pg_query_params,这感觉是正确的方向,但我需要一些帮助。我怎样才能让它工作?
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));
问题是变量周围的双引号。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)"