获取致命错误信息


getting fatal error message

我在我的第二页上得到下面的消息,没有任何工作…

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'] . "'";