MySQL Fatal error: Call to undefined function mysqli_result()错误
阅读更多:MySQL 教程
问题描述
当在PHP文件中使用mysqli_query()函数并执行SELECT语句,然后尝试使用mysqli_result()函数来获取结果集中的数据时,会收到如下错误信息:
Fatal error: Call to undefined function mysqli_result() in filename.php
这样的错误通常意味着mysqli_result()函数已经被从PHP中移除了。
解决方法
为了解决这个问题,我们需要使用其中一种解决方案:
- 使用
mysqli_fetch_*()系列函数替代mysqli_result()
mysqli_fetch_*()系列函数可以直接将结果集的每一行数据从MySQL服务器中获取出来,无需使用mysqli_result()函数。以下是一些可替换方案:
- 使用
mysqli_fetch_array()函数
例如,以下的代码会从users表中获取用户ID为4的姓名和电子邮件:
$conn = mysqli_connect("localhost", "user", "password", "database");
$query = "SELECT name, email FROM users WHERE id = 4";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_array($result);
echo "Name: " . $row["name"] . ", Email: " . $row["email"];
注意,在这个例子中,mysqli_fetch_array()函数的返回值是一个数组,其中键与数据库表中的列名相对应。
- 使用
mysqli_fetch_assoc()函数
这个函数也是用来从结果集中获取数据,不同之处在于返回的是一个关联数组。以下是一个例子:
$conn = mysqli_connect("localhost", "user", "password", "database");
$query = "SELECT name, email FROM users WHERE id = 4";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
echo "Name: " . $row["name"] . ", Email: " . $row["email"];
- 手动获取结果集中的数据
如果需要在程序中使用mysqli_result()函数来获取结果集中的数据,我们可以通过以下步骤手动获取它:
- 使用
mysqli_fetch_array()或mysqli_fetch_row()函数来从结果集中移动游标并获取数据。 - 将需要查询的行号和列号传递给函数,从而检索特定单元格的值。
以下是一个例子:
$conn = mysqli_connect("localhost", "user", "password", "database");
$query = "SELECT name, email FROM users WHERE id = 4";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_array($result);
$name = $row["name"];
$email = $row["email"];
echo "Name: " . mysqli_result($result, 0, "name") . ", Email: " . mysqli_result($result, 0, "email");
总结
虽然mysqli_result()函数已经被从PHP中移除,但使用mysqli_fetch_*()系列函数或手动获取结果集中的数据,可以轻松地解决这个问题。记住,无论哪种方法,都需要用mysqli_query()函数执行SELECT语句,以便从MySQL服务器中检索出数据。
极客笔记