2013-07-19 91 views
0

我最近將我的Zend應用程序遷移到MariaDb。她在MySQL上。Zend_Auth_Adapter_DbTable和MariaDb不起作用?

然而,我當用戶驗證actualy此消息:

所提供的參數來Zend_Auth_Adapter_DbTable未能產生有效的SQL語句,請檢查有效性表和列名。

PHP的產品代碼是這樣的:

$dbAdapter = Zend_Db_Table::getDefaultAdapter(); 

$adapter = new Zend_Auth_Adapter_DbTable($dbAdapter); 

$adapter->setTableName('users') 
     ->setIdentityColumn('username') 
     ->setCredentialColumn('password') 
     ->setCredentialTreatment('SHA1(CONCAT(?, passwordSalt)) AND isDeleted = 0'); 

$adapter->setIdentity($params['username']); 
$adapter->setCredential($params['password']); 

$result = $adapter->authenticate(); 

if ($result->isValid() === false) { 
    // do something 
} 

我沒有改變任何東西。這部分的MySQL和MariaDB之間有什麼區別。

+0

你在什麼操作系統上? – Orangepill

+0

我的操作系統是Centos 6.4 –

+1

基於[這個答案](http://stackoverflow.com/questions/4576637/the-supplied-parameters-to-zend-auth-adapter-dbtable-failed-to-producea-a-有效的S)問題之間存在的版本的MySQL以及...也許在這種情況下,答案將幫助你。 – Orangepill

回答

0

這個問題是基於mysql的版本。

我遷移到mariadb並更改憑證以在我的配置文件中保留utf8的字符。 (CAST(MD5(CONCAT(MD5(?),salt))AS CHAR)AND isactive ='1'「);

和作品。