2016-07-26 52 views
-1

下面的代碼:PDO不張貼到數據庫

$sql1 = "UPDATE muted_alerts SET `customer_id`=':customer_id', `sms_time` = '$fdate', `phone`=':phone'"; 

$stmt = $dbh->prepare($sql1, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); 
$stmt->execute(array(':phone' => $phone,':customer_id'=>$customer_id)); 
$result1 = $stmt->fetchAll(PDO::FETCH_ASSOC); 

這不引發錯誤。我用var_dump來看看$phone,$fdate$customer_id是否有效,它們是。

我猜在我的聲明中有一個問題莫名其妙。爲簡單起見,我排除了所有$dbh行,但我已經測試並知道這些也是正確的。

+3

注:指定的佔位符不需要被引用 – Ghost

+0

@Ghost約'$ fdate'什麼? – jonmrich

回答

1

從execute方法內的數組鍵中的字段和冒號中刪除引號。你不需要it.See如下:

$sql1 = "UPDATE muted_alerts SET customer_id=:customer_id, sms_time = :f_date, phone=:phone"; 

$stmt = $dbh->prepare($sql1, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); 
$stmt->execute(array('phone' => $phone,'f_date' => '$fdate','customer_id'=>$customer_id)); 
$result1 = $stmt->fetchAll(PDO::FETCH_ASSOC);