我正在设置一个带有 sql 数据库的网络服务器 一直在观看有关它的视频,一切看起来都在进行中,直到出现此问题
<?php
function user_exists($username) {
$username = sanitize($username);
$con = mysqli_connect('localhost', 'root', '');
$query = mysqli_query("SELECT COUNT (`id`) FROM users WHERE username = '$con,$username'");
return (mysqli_result($query, 0) == 1) ? true : false;
}
?>
可恢复的 fatal error :
Object of class mysqli could not be converted to string in C:\xampp\htdocs\login\core\functions\users.php on line 5
注意:- 我引用了这个视频,但是我已经将 mysql_*
更改为 mysqli_*
[ https://www.youtube.com/watch?v=Til3oVNlho4]
最佳答案
注意事项
- 连接对象需要在函数范围内可见。最好的方法是将参数传递给函数(避免使用
global
或在函数内创建连接)。 mysqli_result()
不是mysqli_
中存在的函数。它仅存在于mysql_
中,已弃用且不应使用。- 在处理用户输入或任何类型的变量时,最好使用准备好的语句
- 您可以返回表达式
$count == 0
而不是$count == 0 吗? true : false
,因为它们是等价的。
function user_exists($username, $conn) {
$stmt = $conn->prepare("SELECT COUNT(id)
FROM users
WHERE username=?");
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->bind_result($count);
$stmt->fetch();
$stmt->close();
return $count == 0;
}
现在,当您调用它时,请记住传递 $conn
参数(或您的连接对象定义的任何内容)。
$conn = mysqli_connect('localhost', 'root', 'root', 'databasename'); // Change credentials accordingly
if (user_exists($username, $conn)) {
// User does exist!
} else {
// User does not exist
}
关于php - 登录页面 "mysqli_query",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56160835/