我正在运行一些PHP代码,我试图找到具有指定参数的行。我已成功连接数据库,但我遇到了一个问题。
当我运行此代码时:
$SQL = "SELECT * FROM schema.table";
$result = pg_exec($dbconn, $SQL);
while ($row = pg_fetch_array($result) {
echo "data: " .$row . "<br/>\n";
我得到一个打印的数组列表,显示我成功地从数据库中获取了这些数据并能够将其打印到网站页面中。
但是,我需要过滤我只想要具有特定ID的行的数据。当我尝试这个查询时:
$SQL = "SELECT * FROM schema.table WHERE 'ID' = '123'";
当有四行ID为123时, pg_numrows($result)
为0,并且没有任何内容可显示且没有数组,我不知道为什么要添加&#39;其中&#39;声明改变了什么。数据发生了什么,为什么过滤它导致它不再起作用?
已解决:找出遇到同样问题的人的答案。
$SQL = "SELECT * FROM schema.table WHERE \"ID\" = '123'";
这是必须用于字符变化列的语法。感谢大家让我意识到我正在使用错误的引号运行一个有趣的代码。
答案 0 :(得分:2)
像这样使用..
$SQL = "SELECT * FROM schema.table WHERE ID = 123";
永远不要对列名使用单引号,也不要对int类型使用单引号。