我在代码下面运行hte时显示上述错误,以显示从数据库进行的预订.
<?php
$servername = "localhost";
$username = "*********";
$password = "********";
$dbname = "thelibr1_fyp";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, tablename, numseats, person FROM confirms";
$result = $conn->query($sql);
?>
<table id="Confirms" border ="2" style="length:900px;width:350px;">
<thead>
<tr style= "background-color: #A4A4A4;">
<td>Booking ID:</td>
<td>Table No.:</td>
<td>No. of Seats:</td>
<td>Person:</td>
</tr>
</thead>
<tbody>
<?php
while(($row = $result->fetch_assoc()) !== null){
echo
"<tr>
<td>{$row['id']}</td>
<td>{$row['tablename']}</td>
<td>{$row['numseats']}</td>
<td>{$row['person']}</td>
</tr>\n";
}
?>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
当我开始托管它时,我才开始收到错误,在我的个人电脑上它工作正常.并且数据库连接也正常工作.
tri*_*cot 21
如果出现错误,查询方法可以返回false
而不是结果集.这就是为什么你在错误FETCH_ASSOC方法调用,这显然当它不存在$结果是false
.
这意味着您的SELECT语句中有错误.要显示该错误,请执行以下操作:
$result = $conn->query($sql) or die($conn->error);
Run Code Online (Sandbox Code Playgroud)
很可能你的表名或列名拼写错误.也许在移动到主机时你没有正确创建该表,并在那里犯了拼写错误.
实际上,当您通过phpAdmin执行相同的查询时,您应该会看到相同的错误.
另外,替换此行:
while(($row = $result->fetch_assoc()) !== null){
Run Code Online (Sandbox Code Playgroud)
只是:
while($row = $result->fetch_assoc()) {
Run Code Online (Sandbox Code Playgroud)
你也可以添加它来进行调试:
echo "number of rows: " . $result->num_rows;
Run Code Online (Sandbox Code Playgroud)
小智 -2
请使用 if 条件和 while 循环并尝试。
例如。
if ($result = $conn->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
}
/* free result set */
$result->free();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
90446 次 |
最近记录: |