2 回答
TA贡献1946条经验 获得超4个赞
函数mysqli_stmt_get_result依赖于仅在使用特定适配器时可用的函数(mysql 本机驱动程序[实际上更好,但一些托管服务提供商不喜欢它的某些功能或只是提供非常旧的 php...] 而不是 libmysqlclient)。
最好的选择是从学习开始PDO,但如果你想坚持下去,mysqli我也鼓励使用面向对象的风格——你可以在这里找到一个很好的例子: https ://www.php.net/manual/en/ mysqli-stmt.execute.php
但只是为了修复你的文件:
0)主要问题(与那个旧的 libmysqlclient)是你需要确切知道你将拥有多少列 - 我看到你想要三个: - imgFullNameGallery - titleGallery - descGallery
然后从以下位置修改您的查询:
$sql = "SELECT * FROM gallery ORDER BY orderGallery DESC;";
至:
$sql = "SELECT imgFullNameGallery, titleGallery, descGallery FROM gallery ORDER BY orderGallery DESC;";
1)更换线路
$result = mysqli_stmt_get_result($stmt);
和:
mysqli_stmt_bind_result($stmt, $imgFullNameGallery, $titleGallery, $descGallery);
现在替换:
while ($row = mysqli_fetch_assoc($result)) {
echo '<a href="#">
<div style="background-image: url(img/gallery/'.$row["imgFullNameGallery"].');"></div>
<h3>'.$row["titleGallery"].'</h3>
<p>'.$row["descGallery"].'</p>
</a>';
}
和:
while (mysqli_stmt_fetch($stmt)) {
echo '<a href="#">
<div style="background-image: url(img/gallery/'.$imgFullNameGallery.');"></div>
<h3>'.$titleGallery.'</h3>
<p>'.$descGallery.'</p>
</a>';
}
如您所见,每次调用fetch将填充绑定变量$imgFullNameGallery,$titleGallery并$descGallery使用数据库行中它们各自的值。(变量实际上可以以不同的方式命名,这无关紧要,只是它们的计数很重要)
同样在下面,如果您不重新使用它,请务必关闭语句:
mysqli_stmt_close($stmt);
和连接:
mysqli_close($link);
让我知道这是否对您有帮助。另外:您需要这样做只是因为您的托管服务提供商限制了您的功能。
- 2 回答
- 0 关注
- 151 浏览
添加回答
举报