2014-12-09 64 views
1

我有一個PDO代碼來執行通過使用關鍵字「FNAME」數據庫表中的搜索執行搜索,但是我得到一個錯誤使用PDO代碼

致命錯誤:調用一個成員函數準備()上非對象

<?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

您正在使用$db連接和使用$dsn代替$db

同樣的事情,你正在做的所有。您正在使用$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); 
+0

我有一個名爲連接DSN,因此在地方分貝 – jane 2014-12-09 11:29:17

+0

的使用,但在這裏,你正在使用連接到DSN' $ db',嘗試改變一次,並檢查輸出 – 2014-12-09 11:30:05

+0

現在我得到錯誤致命錯誤:調用一個非對象 – jane 2014-12-09 11:33:14