我试图为以下内容获取正确的语法。在这种情况下$ post_pub = 1
$sql='SELECT "Publications"."Pub_ID", "Publications"."ART_TITEL" FROM "Publications" where "Pub_ID"="$post_pub"';
Php抛出错误:列" $ post_pub"不存在
我偶然发现了pg_query_params,感觉这是正确的方向,但我需要一些帮助。我怎样才能让它发挥作用?
答案 0 :(得分:2)
我从未使用过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));
答案 1 :(得分: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)"
将删除所有数据。