duanhui1185 2014-06-23 17:09
浏览 44

Postgres'where'查询不适用于PHP

I'm running some PHP code where I am trying to find rows with a specified parameter. I have successfully connected with the database, however I'm running into one problem.

When I run this code:

    $SQL = "SELECT * FROM schema.table";
    $result = pg_exec($dbconn, $SQL);
    while ($row = pg_fetch_array($result) {
          echo "data: " .$row . "<br/>
";

I get a printed list of arrays showing that I was successful in taking this data from the database and being able to print it out into the website page.

However, I need to filter the data where I only want the rows with a specific ID. When I try this query:

    $SQL = "SELECT * FROM schema.table WHERE 'ID' = '123'";

pg_numrows($result) is 0 when there are four rows with ID of 123 and there is nothing to show and no array and I have no idea why adding the 'where' statement changes anything. What happened to the data, why does filtering it cause it to no longer work?


SOLVED: Figured out the answer for anyone running into the same problem.

    $SQL = "SELECT * FROM schema.table WHERE \"ID\" = '123'";

This is the syntax that must be used for character varying columns. Thanks for everyone making me realize I was running a funny code with wrong quotation marks.

  • 写回答

1条回答 默认 最新

  • douchen2011 2014-06-23 17:15
    关注

    use like this..

    $SQL = "SELECT * FROM schema.table WHERE ID = 123";
    

    Never use single quotes for column names and never use single quotes for int type..

    评论

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line