我在我的第二页上得到下面的消息,没有任何工作…
Fatal error: Call to a member function fetch_assoc() on a non-object in C:'xampp'htdocs'send.php on line 6
这里是我显示电子邮件地址的第一页,它工作得很好,但当我点击电子邮件,转到info.php我得到这个错误。怎么了?
<?php
$mydb = new mysqli('localhost', 'root', '', 'database');
$sql = "SELECT * FROM test ";
$result = $mydb->query($sql);
while( $row = $result->fetch_assoc() ){
echo '<td><a href="info.php?email='.$row['Email'].'">'.$row['Email'].'</a> </td>';
echo "<br/>";
}
$mydb->close ();
?>
这里是info.php..请记住,我试图显示行年龄和单一用户的名字,我有在同一个表在数据库..
<?php
$mydb = new mysqli('localhost', 'root', '', 'database');
$sql = "SELECT * FROM User WHERE id = " . $_GET['email'];
$result = $mydb->query($sql);
while( $row = $result->fetch_assoc() ){
echo $row['Age'] . " " . $row['Name'] ;
echo "<br/>";
}
$mydb->close ();
?>
表示您的查询没有正确运行。你应该打个勾:
if (!$result) {
echo $mydb->error;
}
die();
预备语句你应该使用它们,因为你正在接受用户输入。预处理语句提供了一个很好的清理输入级别,这样用户就不会弄乱您的数据库。
它也看起来像你有一个列的电子邮件,但正试图选择一个用户基于:
id = email.
通常做法是将id设置为INT,而email可能是VARCHAR,因此这种比较没有意义(如果您的表模式遵循通常做法)
查询失败,因为您没有在电子邮件地址周围加上引号。
$sql = "SELECT * FROM User WHERE id = '" . $_GET['email'] . "'";