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 для этой части.


person Bastien D    schedule 19.07.2013    source источник
comment
На основе этого ответа проблема существует и между версиями mysql... возможно, ответ поможет вам в этом случае.   -  person Orangepill    schedule 19.07.2013


Ответы (1)


эта проблема основана на версии mysql.

Я перешел на mariadb и изменил учетные данные, чтобы использовать char, сохраняя utf8 в моем файле конфигурации.

-> setCredentialTreatment("CAST(MD5(CONCAT(MD5(?),salt)) AS CHAR) AND isactive='1'");

и работает.

person Felipe Ortiz M.    schedule 09.11.2015