0

我最近将我的 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 有什么区别。

4

1 回答 1

0

这个问题是基于mysql版本的。

我迁移到 mariadb 并更改了凭证以转换一个字符,将 utf8 保存在我的配置文件中。

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

和作品。

于 2015-11-09T22:27:10.273 回答