如何使用其ID从数据库中检索数据?使用PDO和psql

时间:2014-05-13 11:24:25

标签: php postgresql pdo psql

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

我想使用记录的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。 / p>

我正在使用PDO和pgsql。

任何人都知道我哪里出错了?

2 个答案:

答案 0 :(得分:0)

评论完全没有错过代码的关键部分。

您说的网址为/IM/record.php?=id1时应为/IM/record.php?id=1,您也会通过$_GET

获取错误的变量
 $id = intval ($_GET['recordid']);

应该是

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

记得检查$ id是否确实存在isset($id)

答案 1 :(得分:0)

首先检查您的网址是否已正确创建。 GET参数的传递方式如下:?[param_name1]=[value1]&[param_name2]=[value2] ...尝试打印收到的ID以检查您是否收到了某些内容。

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

查询本身似乎很好。