PHP / MYSQLI错误:注意:尝试获取非对象的属性

时间:2017-03-29 19:15:27

标签: php mysql mysqli

我试图从数据库中回显整个表,但每次我尝试修复'注意:尝试在第24行的/home/st359450/public_html/epw/database.php中获取非对象的属性'错误,它将无法正常工作。在我的浏览器中,我确认与数据库的连接正常。

建立连接后的PHP代码是:

<?php

$servername = "localhost";
$username = "359450";
$password = "dJDgxR";


//create connection


$conn = mysqli_connect($servername, $username, $password);

if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

echo "Connected successfully <br> <br>";


$sql = "SELECT klantnummer, voornaam, tussenvoegsel, achternaam, straat, huisnummer, postcode, woonplaats, telefoonnummer, emailadres FROM CMI_klanten";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
    echo "Klantnummer: " . $row["klantnummer"] . "Naam: " . $row["voornaam"]. " " . $row["tussenvoegsel"]. " " . $row["achternaam"] . "Adres: " . $row["straat"] . " " . $row["huisnummer"] . " " . $row["woonplaats"] . "Telefoonnummer: " . $row["telefoonnummer"] . "Emailadres: " . $row["emailadres"] . "<br>";
}
} else {
echo "0 results";
}
$conn->close();

?>

$ sql变量中的所有内容拼写正确。我多次检查过它。即使显示错误,它仍然输出'0结果'。我检查了多个类似的问题,但没有一个能够解决我的问题。 错误如下:

 if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
    echo "Klantnummer: " . $row["klantnummer"] . "Naam: " . $row["voornaam"]. " " . $row["tussenvoegsel"]. " " . $row["achternaam"] . "Adres: " . $row["straat"] . " " . $row["huisnummer"] . " " . $row["woonplaats"] . "Telefoonnummer: " . $row["telefoonnummer"] . "Emailadres: " . $row["emailadres"] . "<br>";
}
} else {
echo "0 results";
}
$conn->close();

?> 

我希望你们能帮助我!

2 个答案:

答案 0 :(得分:1)

您没有数据库参数。在初始化mysqli连接时输入数据库值作为最后一个参数:

$database ='database_naam';

$conn = mysqli_connect($servername, $username, $password, $database);

答案 1 :(得分:0)

您正在从程序mysqli调用对象方法。虽然我不认为这会破坏任何东西,为了你自己的理智和任何可能在你之后看到这些代码的人,我会选择一种风格并坚持下去。

您无法立即拨打num_rows。根据{{​​3}}:

  

使用mysqli_stmt_num_rows()取决于您是否使用mysqli_stmt_store_result()来缓冲语句句柄中的整个结果集。

在查询调用后添加此行,然后重试:

$result->store_result();