使用pdo代码执行搜索

时间:2014-12-09 11:24:29

标签: php pdo

我有一个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();
    }
?>
如果有人能帮助我,

会很感激

1 个答案:

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