Zend_Auth_Adapter_DbTable и MariaDb не работает?
Я недавно перенес свое приложение Zend в MariaDb. Она была на MySQL.
Тем не менее, я действительно это сообщение, когда пользователь аутентифицируется:
Предоставленные параметры для 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 для этой части.
1 ответ
Эта проблема основана на версии MySQL.
Я мигрировал в mariadb и изменил учетные данные, чтобы использовать char, сохраняя utf8 в моем конфигурационном файле.
-> setCredentialTreatment ("CAST (MD5 (CONCAT (MD5 (?), соль)) как CHAR) И isactive='1'");
и работает.