php - 无法使用 array_shift() 获得结果
问题描述
当我尝试通过 verify_user 方法验证用户数据时
<?php
public static function verify_user ($username , $password)
{
global $database;
$username = $database->escape_string($username);
$password = $database->escape_string($password);
$query = "SELECT * FROM users WHERE username = '{$username}' and password = '{$password}' LIMIT 1";
$result_array = self::find_this_query($query);
if (!empty($result_array)) {
$result_array = array_shift($result_array);
return $result_array;
} else {
return false;
}
}
这里还有我的 find_this_query 方法
public static function find_this_query ($enter_here_your_sql_query)
{
global $database;
$result = $database->query($enter_here_your_sql_query);
return $result;
}
并尝试在这里登录用户也是我的 login.php 代码
<?php
if($session->is_signed_in()) {
redirect("index.php");
}
if (isset($_POST['submit'])) {
$username = trim($_POST['username']);
$password = trim($_POST['password']);
}
//method to check db user
$user_found = User::verify_user($username , $password);
if ($user_found) {
$session->login($user_found);
redirect("index.php");
} else {
$the_message = "<p class='alert alert-warning' style='color: grey'>Your password or username is incorrect</p>";
$username = "";
$password = "";
}
?>
我在登录页面上收到该错误
警告:array_shift() 期望参数 1 是数组,对象在第 189 行的 /admin/includes/User.php 中给出
这里来自 user.php 类的第 189 行
$result_array = array_shift($result_array);
我在这里做错了什么?
解决方案
该mysqli::query()
函数不返回数组,而是返回一个mysqli_result
对象。
mysqli_result
实现了Traversable
接口,它允许你在它上面使用一些数组操作foreach
,但大多数其他数组操作都不起作用。特别是,您不能array_shift()
在此对象上使用。
代替
$result_array = array_shift($result_array);
return $result_array;
利用:
$row = $result_array->fetch_assoc();
return $row;
推荐阅读
- c++ - 如何在 vscode 中设置项目文件夹并链接所有 cpp 文件
- vue.js - 检查vue route中是否有前一页
- postgresql - 从包含 jsonb[] 列中特定 id 的 postgres 表中获取行
- javascript - 如何设置超时以便等待至少需要一定的时间?
- css - 如何使图像全宽,并为较小的浏览器动态调整大小?
- python - 更改了 VS Code 中的一些设置,现在我的第一个 Python 代码不起作用
- python - 在python中不使用for语句打印类列表的所有变量
- python - OSError:SavedModel 文件不存在于:C:\Users\Munib\New 文件夹/{saved_model.pbtxt|saved_model.pb}
- json - 颤振下拉按钮评估来自json的值
- python - 用 Python 解析大型复杂的专利分类 XML 文件