📅  最后修改于: 2023-12-03 15:03:07.875000             🧑  作者: Mango
该错误提示是由 PHP 解释器直接生成的,告诉开发者在执行相关代码时出现了问题。在这个错误提示中,我们可以看到是在执行 C:\xampp\htdocs\complete-blog-php\admin\includes\post_functions.php 第 31 行时出现了问题。具体来说,是因为使用了错误的参数类型,即 mysqli_fetch_all() 函数的参数 1 应为 mysqli_result 类型。
mysqli_fetch_all() 函数用于从结果集中获取所有的行作为关联数组、数字数组或同时包含两者的数组。该函数有一个必需的参数 1,即 MySQL 查询语句执行后得到的结果集对象 mysqli_result。因此,在调用该函数之前,需要先判断查询是否成功,以及是否获取到了结果集对象。
为了避免这个错误,开发者需要仔细查看代码并检查 mysqli_fetch_all() 函数的参数是否正确。同时,还需要查看查询语句是否正确,是否成功执行,并根据需要对结果集进行类型转换。
建议开发者在编写代码时多运用调试技巧,如输出变量值或使用调试工具,以便更快地定位问题所在,并快速找到解决方案。
### post_functions.php
函数功能:获取文章列表
参数:
返回值:markdown格式的字符串
```php
/**
* 获取文章列表
*
* @return string markdown格式的字符串
*/
function get_posts() {
global $connection;
// 查询所有文章
$query = "SELECT * FROM posts";
$result = mysqli_query($connection, $query);
// 检查查询结果是否为空
if (mysqli_num_rows($result) == 0) {
return "没有找到任何文章";
}
// 从结果集中获取所有的行作为关联数组
$posts = mysqli_fetch_all($result, MYSQLI_ASSOC);
// 初始化markdown格式的字符串
$markdown = "";
// 遍历文章列表,并按照markdown格式进行排版
foreach ($posts as $post) {
$markdown .= "## " . $post['title'] . "\n\n";
$markdown .= "*By " . $post['author'] . " on " . $post['date'] . "*\n\n";
$markdown .= $post['content'] . "\n\n";
}
// 返回markdown格式的字符串
return $markdown;
}