Php 登录页面“mysqli_查询”
我正在使用sql数据库设置web服务器 一直在看关于它的视频,直到这个问题出现之前,一切看起来都在进行中Php 登录页面“mysqli_查询”,php,mysql,mysqli,Php,Mysql,Mysqli,我正在使用sql数据库设置web服务器 一直在看关于它的视频,直到这个问题出现之前,一切看起来都在进行中 <?php function user_exists($username) { $username = sanitize($username); $con = mysqli_connect('localhost', 'root', ''); $query = mysqli_query("SELECT COUNT (`id`) FROM users WHERE u
<?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;
}
?>
可恢复的致命错误:
类mysqli的对象无法在中转换为字符串
第5行的C:\xampp\htdocs\login\core\functions\users.php
注意:-我已从本视频中引用,但我已将mysql_*更改为mysqli_*[您尚未在函数中传递数据库名称,需要将连接变量作为第一个参数传递。您可以从查询中删除COUNT,并使用它来计算行数
$username = sanitize($username);
$con = mysqli_connect('localhost', 'root', '','databasename');//<- database name is required
$query = mysqli_query($con,"SELECT (`id`) FROM users WHERE username = '$username'");
return (mysqli_num_rows($query) > 0 ) ? true : false;
我建议您使用来防止sql注入您尚未在函数中传递数据库名称,需要将连接变量作为第一个参数传递。您可以从查询中删除COUNT,并使用来计算行数
$username = sanitize($username);
$con = mysqli_connect('localhost', 'root', '','databasename');//<- database name is required
$query = mysqli_query($con,"SELECT (`id`) FROM users WHERE username = '$username'");
return (mysqli_num_rows($query) > 0 ) ? true : false;
我建议您使用以防止sql注入使用mysqli\u fetch\u row函数。它将获取一行
使用mysqli_fetch_row函数。它将获取一行
需要注意的几件事
连接对象需要在函数的作用域中可见。最好的方法是将参数传递到函数中,避免在函数中使用全局或创建连接。
mysqli_result不是mysqli_中存在的函数。它仅存在于mysql_中,已弃用,不应使用。
在处理用户输入或任何类型的变量时,最好使用预先准备好的语句
您可以返回表达式$count==0而不是$count==0?true:false,因为它们是等效的。
函数用户_存在$username,$conn{
$stmt=$conn->prepareSELECT COUNTid
来自用户
其中username=?;
$stmt->bind_参数,$username;
$stmt->execute;
$stmt->bind_result$count;
$stmt->fetch;
$stmt->close;
返回$count==0;
}
现在,当您调用它时,请记住传入$conn参数或您的连接对象定义为的任何对象
$conn=mysqli_connect'localhost','root','root','databasename';//相应地更改凭据
如果用户_存在$username,$conn{
//用户确实存在!
}否则{
//用户不存在
}
需要注意的几件事
连接对象需要在函数的作用域中可见。最好的方法是将参数传递到函数中,避免在函数中使用全局或创建连接。
mysqli_result不是mysqli_中存在的函数。它仅存在于mysql_中,已弃用,不应使用。
在处理用户输入或任何类型的变量时,最好使用预先准备好的语句
您可以返回表达式$count==0而不是$count==0?true:false,因为它们是等效的。
函数用户_存在$username,$conn{
$stmt=$conn->prepareSELECT COUNTid
来自用户
其中username=?;
$stmt->bind_参数,$username;
$stmt->execute;
$stmt->bind_result$count;
$stmt->fetch;
$stmt->close;
返回$count==0;
}
现在,当您调用它时,请记住传入$conn参数或您的连接对象定义为的任何对象
$conn=mysqli_connect'localhost','root','root','databasename';//相应地更改凭据
如果用户_存在$username,$conn{
//用户确实存在!
}否则{
//用户不存在
}
mysqli_结果不是函数。此视频一点也不好。不要在where子句中传递$con,请尝试mysqli_query$con,从username='$username'的用户中选择COUNT id;mysqli_结果不是函数。此视频一点也不好。不要在where子句中传递$con,请尝试mysqli_query$con,从username='$username'的用户中选择COUNT id;thi这个答案似乎是所有答案中最完美的