2012-04-01 53 views
1

我有一個到數據庫的連接,並想更新(覆蓋)一個名爲profile的現有字符串。MySQL:更新語句顯示沒有錯誤,但沒有任何變化

$uid = 1; 
$serProfile = 'abc'; 

$sql = 'UPDATE 
      Users 
     SET 
      profile = ? 
     WHERE 
      id = ?'; 
$stmt = $db->prepare($sql); 
if (!$stmt) { safeExit($db->error, 'msgError'); } 
$stmt->bind_param('si', $serProfile, $uid); 
if (!$stmt->execute()) { safeExit($stmt->error, 'msgError'); } 
$stmt->close(); 

但是,雖然存在變量,但存在字段並且沒有錯誤,數據庫中的值不會更改。如何解決這種行爲?

+0

約commiting什麼?還是配置爲自動提交? – giorashc 2012-04-01 20:08:50

+0

我在刷新頁面時提交。 – u7f1mrfpf 2012-04-01 20:15:01

+0

是PDO還是mysqli? – 2012-04-01 20:16:38

回答

0

測試此一個

$sql = 'UPDATE Users SET profile = :profile WHERE id = :id'; 
$stmt = $db->prepare($sql); 
$stmt->execute(array('id'=>$uid,'profile'=>$serProfile)); 
+0

沒有工作。錯誤:致命錯誤:調用成員函數execute()上的非對象「$ stmt-> execute(array('id'=> $ uid,'profile'=> $ serProfile)); 」 – u7f1mrfpf 2012-04-01 20:12:54

相關問題