我正在尝试检查数据库中是否存在字符串。但我不断收到此错误消息“致命错误:在第8行的非对象上调用成员函数fetch()”
$string = random_string(30);
$sql = create_sql(); //returns a PDO object with connection to the database
$data = $sql->prepare("SELECT * FROM session WHERE string =:string");
$data->bindParam(':string', $string);
$data = $data->execute();
$row = $data->fetchAll();
if(empty($row)){
答案 0 :(得分:1)
您的代码使用fetchAll()
,但错误非常明显。 qwertynl
的评论是正确的 - 您正在覆盖$data
,因此之后它不是PDOStatement
对象,因此您无法使用fetch()
或fetchAll()
方法
将您的代码更新为以下内容,您应该很高兴。
$string = random_string(30);
$sql = create_sql(); //returns a PDO object with connection to the database
$stmt = $sql->prepare("SELECT * FROM session WHERE string =:string");
$stmt->bindParam(':string', $string);
$stmt->execute();
$data = $stmt->fetchAll();