gpt4 book ai didi

php - 无法通过 php 脚本进行查询

转载 作者:行者123 更新时间:2023-11-30 00:55:23 25 4
gpt4 key购买 nike

我有一个简单的 php 脚本,它执行两次简单的 SQL 查询。第一次查询完美,但第二次出现错误;

Notice: Trying to get property of non-object in C:\apache\localhost\www\study.kg\webstore\web_store.php on line 48

Fatal error: Call to a member function free() on a non-object in C:\apache\localhost\www\study.kg\webstore\web_store.php on line 80

首先,我们对“categories”表进行查询。一切都很好。其次,我们对“shoes”表进行相同的查询。一切都很糟糕,因为

$query = "SELECT * FROM shoes";
$result = $db->query($query);

返回FALSE值。

但是为什么呢?第一个它工作得很好。如果您指的是编码等,这些表是相同的。因此,正如您可以猜到的那样,我的第一个表完美地显示了自己,第二个表根本不显示任何数据。这是完整的片段。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Лабораторная: интернет-магазин обуви</title>
</head>
<body>
<?php
@$db = new mysqli('localhost', 'dzhakipov', 'asd12345', 'webshop');

if (mysqli_connect_errno()) {
echo 'Error: could not connect to database. Please try again later.';
exit;
}

$query = "SELECT * FROM categories";
$result = $db->query($query);

$num_results = $result->num_rows;

?>
<table>
<tr>
<td>id</td>
<td>Название</td>
<td>Описание</td>
<td>Поставщик</td>
<td>Продавец</td>
<td>Адрес склада</td>
</tr>
<?php
for ($i = 0; $i < $num_results; $i++) {
$row = $result->fetch_assoc();
echo "<tr>";
echo "<td>" .stripslashes($row['id']). "</td>";
echo "<td>" .htmlspecialchars(stripslashes($row['name'])). "</td>";
echo "<td>" .stripslashes($row['description']). "</td>";
echo "<td>" .stripslashes($row['supplier']). "</td>";
echo "<td>" .stripslashes($row['salesman']). "</td>";
echo "<td>" .stripslashes($row['storage_address']). "</td>";
echo "</tr>";
}
echo "</table>";

$query = "SELECT * FROM shoes";
$result = $db->query($query);

$num_results = $result->num_rows; // LINE 48 #############################
?>
<table>
<tr>
<td>id</td>
<td>categoryid</td>
<td>Название</td>
<td>Пол</td>
<td>Размер</td>
<td>Сезон</td>
<td>Внешний материал</td>
<td>Внутренний материал</td>
<td>Цвет</td>
<td>Описание</td>
</tr>
<?php
for ($i = 0; $i < $num_results; $i++) {
$row = $result->fetch_assoc();
echo "<tr>";
echo "<td>" .stripslashes($row['id']). "</td>";
echo "<td>" .stripslashes($row['categoryid']). "</td>";
echo "<td>" .htmlspecialchars(stripslashes($row['name'])). "</td>";
echo "<td>" .stripslashes($row['sex']). "</td>";
echo "<td>" .stripslashes($row['size']). "</td>";
echo "<td>" .stripslashes($row['season']). "</td>";
echo "<td>" .stripslashes($row['inner_material']). "</td>";
echo "<td>" .stripslashes($row['outer_material']). "</td>";
echo "<td>" .stripslashes($row['colour']). "</td>";
echo "<td>" .stripslashes($row['price']). "</td>";
echo "</tr>";
}
echo "</table>";
$result->free(); // LINE 80 #############################
$db->close();
?>

</body>
</html>

感谢您的关注。

最佳答案

查看此http://php.net/manual/en/function.mysql-free-result.php在第二次使用结果之前。

您还可以将第二个 $result 更改为 $result2 以使其正常工作。

关于php - 无法通过 php 脚本进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20601133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com