错误:
PHP Catchable致命错误:类mysqli_stmt的对象不可能 在第33行的common.php中转换为字符串
我知道有很多主题都有这个标题,但我在第33行读了所有内容,而且没有类似于我的代码:
if (!$sql->execute()) {
echo "Error: " . $sql . "<br>" . $sql->error; // --> this is line 33
}
此部分属于此代码:
class User {
public function getId(){
global $connection;
$id = $_COOKIE['userid'];
$userid = $_COOKIE['auth'];
$sql = $connection->prepare("SELECT tel, hash FROM seller WHERE id = ?");
$sql->bind_param("s", $id);
if (!$sql->execute()) {
echo "Error: " . $sql . "<br>" . $sql->error;
}
$sql->bind_result($tel, $hash);
$sql->fetch();
$sql->close();
if(md5($hash) == $userid){
$result = $tel;
} else {
$result = 0;
}
return $result;
}
}
今天早上我突然面对这个错误,而且之前的代码工作正常。没有改变我得到了这个错误。任何想法?
这种错误的有趣部分是,当我评论该行时,我将为另一个mysqli
执行获得另一个类似的错误。为什么会这样?
我知道这个错误意味着什么,但它直到今天,我没有改变任何东西,它只是回应执行的错误。那为什么呢?
答案 0 :(得分:0)
正如评论中指出的那样,您试图将mysqli_stmt
对象($sql
)表示为字符串,这是不可能的。你可能想这样做:
$query = "SELECT tel, hash FROM seller WHERE id = ?";
$sql = $connection->prepare($query);
$sql->bind_param("s", $id);
if (!$sql->execute()) {
echo "Error: " . $query . "<br>" . $sql->error;
}