我有一个pdo代码,使用关键字' fname'在数据库表中搜索,但是我收到了错误
致命错误:在非对象上调用成员函数prepare()
<?php
require 'config.php';
try {
$db = new PDO($dsn, $username, $password);
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$fname = $_POST['fname'];
$sth = "SELECT * FROM features_for_office WHERE fname LIKE :fname ";
$stmt = $dsn->prepare($sth);
$stmt->bindValue(':name', '%' . $fname . '%', PDO::PARAM_INT);
$stmt->execute();
$locations = $sth->fetchAll();
echo json_encode( $locations );
} catch (Exception $e) {
echo $e->getMessage();
}
?>
如果有人能帮助我,会很感激
答案 0 :(得分:0)
您正在使用$db
进行连接并使用$dsn
代替$db
你正在使用fetch all做同样的事情。您正在使用$stmt
执行,但使用$sth
获取结果
$stmt = $dsn->prepare($sth);
$stmt->bindValue(':name', '%' . $fname . '%', PDO::PARAM_INT);
$locations = $sth->fetchAll();
到
$stmt = $db->prepare($sth);
$stmt->bindValue(':fname', '%' . $fname . '%', PDO::PARAM_INT);
$locations = $stmt->fetchAll(PDO::FETCH_ASSOC);