运行此代码时,无法将“类mysqli的对象转换为字符串”

时间:2018-02-16 12:32:58

标签: php mysqli

每当我运行这段代码时,“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);
    }
}

1 个答案:

答案 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