我遇到了一些问题。我试图使用PHP和搜索词从MySQL中提取数据。但是,我似乎无法弄清楚为什么我的代码返回错误。
我不断得到的错误是:
尝试获取非对象的属性。第40行
据我所知,这意味着我正在调用一个变量,该变量是A.必须不存在或B.没有值/ s。我可能犯了一些愚蠢的错误但有人知道为什么我的代码不起作用吗?
<!DOCTYPE html>
<html lang="en">
<?php
$boxnumber = $_POST['boxnumber'];
if (is_numeric($boxnumber)) {
}
else {
echo 'Please only input numbers';
}
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "testing";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
}
$query_boxinfo = 'SELECT box_number, client_number, client_code, tax_year, status FROM testing_table WHERE box_number=$boxnumber';
$boxinfo_result = $conn->query($query_boxinfo);
?>
<head>
<meta charset="UTF-8">
<title>Box <?php echo $boxnumber; ?> Details</title>
</head>
<body>
<table>
<tr>
<td>Box Number</td>
<td>Client Code</td>
<td>Client Name</td>
<td>Tax Year</td>
<td>Status</td>
</tr>
<?php
if ($boxinfo_result->num_rows > 0) {
while ($row = $boxinfo_result->fetch_assoc()) {
echo '<tr>';
echo '<td>';
echo $boxnumber;
echo '</td>';
echo '<td>';
echo $row["client_code"];
echo '</td>';
echo '<td>';
echo $row["client_name"];
echo '</td>';
echo '<td>';
echo $row["tax_year"];
echo '</td>';
echo '<td>';
echo $row["status"];
echo '</td>';
echo '</tr>';
}
}
else {
echo '<span style="color:red">Unknown error. No Results found. Please contact your System Administrator or Workplace Head.</span>';
}
?>
</table>
</body>
</html>
答案 0 :(得分:0)
Erik说的是对的,我们不能在单引号之间使用变量。 查询语句需要用双引号。
$ boxinfo_result在此为空,因此您收到该错误。
很抱歉看到你的评论稍后,我无法发表评论。 这将解决 $ boxinfo_result-&gt; fetch_array(MYSQLI_ASSOC)代替$ boxinfo_result-&gt; fetch_assoc()