【问题标题】:How to retrieve data from a database using its ID? Using PDO and psql如何使用其 ID 从数据库中检索数据?使用 PDO 和 psql
【发布时间】:2014-07-01 01:08:03
【问题描述】:

我有一个记录列表,当单击某个记录时,我需要它来显示存储在数据库中的该记录的数据。

我想使用记录的 ID,以便我可以显示来自每个特定 ID 的数据,因此当单击 ID 为“1”的记录时,它应该显示 ID 为 1 的数据库中的数据。 .等等。

不知道如何解释这一点。

<?php
    try {
    $db = new PDO('pgsql:dbname=441255;host=150.237.105.37;user=******;password=*********');
    $id = intval ($_GET['recordid']);
    $SQLquery = "select recordname,recorddetails from record where recordid=$id";

    $results = $db->query($SQLquery);


    print "<table cellpadding=\"3\" cellspacing=\"3\"><tr><th>Details</th></tr>\n";

    while ($record =$results->fetch (PDO::FETCH_OBJ) ) {
    print '<h1>' .$record->recordname. '</h1>';
        echo '<tr>';
        echo '<td>' .$record->recordid. '</td>';
        echo '<td>' . $record->$id. '</td>';
        echo "</tr>\n";
    }   
    print "</table>\n"; 
}
catch (Exception $e) {
echo $e;
}
?>

到目前为止,这是我的 PHP 代码,但它没有显示数据。没有错误,并且 URL 正在更改每条记录的 ID 号,单击第一条记录时显示:/IM/record.php?=id1,单击第二条记录时显示/IM/record.php?=id2。

我正在使用 PDO 和 pgsql。

有人知道我哪里出错了吗?

【问题讨论】:

  • 网址应该以?id=[number]结尾,而不是?=id[number]
  • 网址应该是?recordid=NUMBER
  • 点赞www.domain.com/page.php?id=1
  • 在你的情况下IM/record.php?id=1
  • 不要在你的语句中直接使用 PHP 变量。而是准备你的陈述。

标签: php postgresql pdo psql


【解决方案1】:

cmets 完全遗漏了代码的关键部分。

你说你的 URL 是 /IM/record.php?=id1 而它应该是 /IM/record.php?id=1,而且你通过 $_GET 得到了错误的变量

 $id = intval ($_GET['recordid']);

应该是

 $id = intval($_GET['id']);

记得检查$id是否真的存在isset($id)

【讨论】:

    【解决方案2】:

    首先检查您的网址是否正确创建。 GET 参数是这样传递的:?[param_name1]=[value1]&amp;[param_name2]=[value2]... 尝试打印收到的 ID 以检查您是否收到了一些东西。

    同样在你的第二个单元格(td 元素)中,你会得到一个错误。 $record-&gt;$id 应该只是 $id$record-&gt;recordid

    查询本身似乎不错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 2021-12-31
      • 2019-05-30
      • 2020-08-03
      • 1970-01-01
      相关资源
      最近更新 更多