2014-01-16 17 views
0

這是我第一次運行PDO,不知道它比使用mysqli好多少,但它的一部分我不得不創建。首先運行PDO得到一個非成員函數bindParam()對一個非對象錯誤的調用

這是導致消息的代碼,我試圖做的是更新我的數據庫表中的數據片段。

<?php 
//PHP Data Objects 
try{ 
    //Connect 


    $dbh = new PDO('mysql:host=localhost; dbname = company; charset=utf-8','root', 'bachi619'); 

} catch(PDOException $e){ 
    echo $e->getMessage(); 

} 


$id = 4; 
$name = "logan"; 
$department = "Design"; 

$sth = $dbh->query("UPDATE employees SET department=:department,last_name=:lastname WHERE id=:id"); 

//bind 
$sth->bindParam(':id',$id); 
$sth->bindParam(':lastname',$name); 
$sth->bindParam(':department',$department); 

$sth->execute(); 

?> 

回答

0

的DSN應無間隔

$dbh = new PDO('mysql:host=localhost;dbname=company','root', 'bachi619'); 

你需要準備這樣

$sth = $dbh->prepare('UPDATE employees SET department=:department,last_name=:lastname WHERE id=:id'); 

SQL語句然後綁定參數

$sth->bindParam(':id',$id); 
$sth->bindParam(':lastname',$name); 
$sth->bindParam(':department',$department); 

最後執行查詢

$sth->execute(); 
+0

確定我有它這樣的,我沒有進行更改和錯誤信息消失但沒有更新。仔細檢查數據庫和所有的名稱似乎加上了PHP代碼。不知道爲什麼它不更新在db – user2684521

+0

不更新看起來像一個SQL錯誤。 – 2014-01-16 07:47:57

+0

同時確保連接成功建立 – 2014-01-16 07:51:43

0

,你必須使用

$dbh -> prepare("UPDATE employees SET department=:department,last_name=:lastname WHERE id=:id"); 
相關問題