-2

我正在尝试检查我的数据库中是否存在字符串。但我不断收到此错误消息“致命错误:在第 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)){
4

1 回答 1

1

您的代码使用fetchAll(),但错误非常明显。qwertynl的评论是正确的 - 你正在覆盖$data,所以之后它不是一个PDOStatement对象,所以你不能使用fetch()orfetchAll()方法。

将您的代码更新为以下内容,您应该一切顺利。

$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();
于 2013-12-29T15:55:52.607 回答