每当我运行这段代码时,“mysqli_query($ dbhandle,”INSERT INTO“在else语句之后返回'类mysqli的对象无法转换为字符串'错误。我在网上搜索过,试过各种解决方案,但仍然没有设法解决它。特别是考虑到第一个请求进入数据库和所有请求后返回此错误。我有点困惑任何人都可以帮助我吗?
if($command=='registrationCheck'){
$escapedName=mysqli_real_escape_string($dbhandle,$userName);
$result=mysqli_query($dbhandle,"SELECT userName FROM Login WHERE userName='{$escapedName}'");
$row=mysqli_fetch_array($result);
if($row){
echo("exists");
}else{
echo("doesnt exist");
mysqli_query($dbhandle,"INSERT INTO Login (userName) VALUES ('{$escapedName}')") or trigger_error("Query Failed! SQL: $dbhandle - Error: ".mysqli_error(), E_USER_ERROR);
}
}
答案 0 :(得分:3)
您正在将$dbhandle
写入字符串,并且无法将其转换为字符串,在以下行中:
"Query Failed! SQL: $dbhandle - Error: ".mysqli_error()
$dbhandle
是一个类,而不是您的SQL查询。
您必须创建一个变量来存储SQL查询,然后编写它。
$sql = "INSERT INTO Login (userName) VALUES ('{$escapedName}')";
mysqli_query($dbhandle,$sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error($dbhandle), E_USER_ERROR);
在上面一行中,$dbhandle
变为$sql
。