试图检查PDO是否存在字符串

时间:2013-12-29 15:43:24

标签: php mysql pdo fetchall

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

1 个答案:

答案 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();