我PDO新手,我不知道如何捕捉錯誤的或看到什麼錯呢看看這段代碼:PHP PDO更新查詢不工作
呼叫這裏的功能:
$this->storage->updateTriplet($cookieValues[0],$newToken.$this->salt, $cookieValues[2].$this->salt, $t, $expire);
問題函數:
public function updateTriplet($credential, $token, $persistentToken,$t, $expire=0) {
$sql = "UPDATE {$this->tableName}
SET cred=?, tok=?, ptok=?, t=?, expires=?
WHERE ptok=?'".$persistentToken."' ";
$query = $this->connection->prepare($sql);
$query->execute(array($credential ,$token, $persistentToken , $t , date("Y-m-d H:i:s", $expire)));
}
而且該功能良好,插入功能使用我:
public function storeTriplet($credential, $token, $persistentToken,$t, $expire=0) {
$sql = "INSERT INTO {$this->tableName}({$this->credentialColumn}, " .
"{$this->tokenColumn}, {$this->persistentTokenColumn}, " .
"{$this->t},{$this->expiresColumn}) VALUES(?, SHA1(?), SHA1(?),?, ?)";
$query = $this->connection->prepare($sql);
$query->execute(array($credential, $token, $persistentToken,$t, date("Y-m-d H:i:s", $expire)));
}
無論如何,我的插入功能工作完美問題是在更新功能的第一個,我的更新功能不工作,任何人知道我的問題在哪裏,我做錯了什麼?以及如何查看更新函數上的MySql PDO錯誤?
更新:回答和解決:
public function updateTriplet($credential, $token, $persistentToken,$t, $expire=0) {
$sql = "UPDATE {$this->tableName}
SET cred=?, tok=?, ptok=?, t=?, expires=?
WHERE ptok=SHA1('".$persistentToken."');
$query = $this->connection->prepare($sql);
$query->execute(array($credential ,$token, $persistentToken , $t , date("Y-m-d H:i:s", $expire)));
}
非常感謝。
我建議你把'$ persistentToken'作爲參數傳遞給你,就像你對別人做的那樣。您將確保它將被正確轉義。 –