【发布时间】:2015-06-13 15:46:35
【问题描述】:
首先我知道这可能是一个重复的问题,但我做了一些搜索,例如 this question,但我不明白它是如何工作的。
我有这个代码...
<?php
$host = "localhost";
$user = "root";
$pass = "Passw0rd";
$database = "test";
$db = new PDO("mysql:host={$host};dbname={$database}", $user, $pass);
$stmt = $db->prepare("SELECT * FROM patient WHERE fname LIKE :q OR lname LIKE :q");
$stmt->bindValue(':q', '%'.$_GET['q'].'%');
$stmt->execute();
while ( $row = $stmt->fetch() ) {
echo '<a href="members2.php?view=' . $row->id . '" target="_blank">' . $row->fname . ' ' . $row->lname . '</a><br/>';
}
?>
我得到了这个错误
Trying to get property of non-object in E:\xampp\htdocs\ptixiaki\livesearch.php on line 13
第 13 行就是这一行……
echo '<a href="members2.php?view=' . $row->id . '" target="_blank">' . $row->fname . ' ' . $row->lname . '</a><br/>';
你能帮我解决这个问题吗
【问题讨论】:
-
您可能希望使用
fetchObject()而不是fetch(),否则您会得到一个数组,而不是一个对象。 -
@ClémentMalet 谢谢你修复了一些问题,但现在我得到了这个
Notice: Undefined property: stdClass::$id in E:\xampp\htdocs\ptixiaki\livesearch.php on line 13 -
试试
$result = $sth->fetch(PDO::FETCH_BOTH);print_r($result);看看返回的结果是什么。 -
@ClémentMalet 我修复了第二个错误。写下您的第一条评论作为答案以接受它
-
正如@ClémentMalet 所说,使用
fetchObject()可以让你做到这一点$row->id和fetch()你可以做到这一点$row['id']