gpt4 book ai didi

php - 为什么将代码从 mysql 切换到 mysqli 后 mysqli_data_seek 不起作用?

转载 作者:行者123 更新时间:2023-11-29 10:45:32 32 4
gpt4 key购买 nike

我最近将代码从使用 mysql 更改为 mysqli,并解决了 WAMP 本地服务器显示的所有错误。但是登录机制被破坏了。现在,无论密码正确与否,它都允许用户登录。我正在使用以下函数来完成这项工作,在将内容切换到 mysqli 之前,该函数运行良好。这里出了什么问题?

function login($registration_id, $password) {
include 'core/database/connect.php';

$registration_id = sanitize($registration_id);
$password = sanitize($password);
$query = mysqli_query($link, "SELECT COUNT(`sr`) FROM `main_table` WHERE `registration_id` = '$registration_id' AND `password` = '$password'");
return (mysqli_data_seek($query, 0) == 1) ? $registration_id : false;

mysqli_close($link);
}

最佳答案

mysqli_data_seek()函数仅返回一个 bool 值,指示调用是否成功。它不会从底层 SQL 查询的结果中返回任何内容。

由于您的 sql 查询是 select count(...),因此它将始终在结果集中返回一行。因此,除非 sg 出错,否则 mysqli_data_seek() 的结果将始终为 true,等于 1。这意味着每个人都可以登录。

您需要通过 count() 函数读取返回值来确定登录是否成功,例如 mysqli_fetch_array() .

关于php - 为什么将代码从 mysql 切换到 mysqli 后 mysqli_data_seek 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44653073/

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