它的奇怪,下面的代碼用於很好地工作。運行相同的代碼後,它會運行但不會進入數據庫。用戶名,密碼,數據庫名稱等都是正確的,PDO擴展存在並在PHP中啓用(如我在phpinfo中檢查)。甚至在phpmyadmin檢查特權,在本地主機上獲得所有PRIVILEGES.Code始終返回false,沒有警告,通知或錯誤。可能是什麼原因?數據庫項沒有發生任何警告或錯誤從php
規範新用戶註冊:
$randomSalt = base64_encode(mcrypt_create_iv(PBKDF2_SALT_BYTE_SIZE, MCRYPT_DEV_URANDOM));
$saltedPass = base64_encode($this->pbkdf2(PBKDF2_HASH_ALGORITHM,
$password,
$randomSalt,
PBKDF2_ITERATIONS,
PBKDF2_HASH_BYTE_SIZE,
true
));
$id = $this->NewGuid();
$sql = $this->dbh->prepare("INSERT INTO `{$this->dbtable}` (`id`, `username`, `password`, `password_salt`, `created`) VALUES(:id, :username, :password, :passwordSalt, NOW())");
/* Bind the default values */
$sql->bindValue(":id", $id);
$sql->bindValue(":username", $mail);
$sql->bindValue(":password", $saltedPass);
$sql->bindValue(":passwordSalt", $randomSalt);
//$sql->bindValue(":created", UNIX_TIMESTAMP(now()));
if($sql->execute())
{
$_SESSION['logSyscuruser'] = $id;
setcookie("logSyslogin", hash("sha256", $this->secureKey.$id.$this->secureKey), time()+3600*99*500, "/");
return true;
}
else
{
return false;
}
您是否在PHP中打開了警告和錯誤消息? –
在這個代碼塊之上的某個點,你是否正在初始化PDO對象(即'$ this-> dbh = new PDO(...);'... – War10ck
...並且因爲你沒有顯式的錯誤處理程序在此代碼片段中:是否將錯誤模式設置爲[PDO :: ERRMODE_EXCEPTION](http://docs.php.net/manual/en/pdo.constants.php#pdo.constants.errmode-exception)? – VolkerK