【问题标题】:Zend_Auth_Adapter_DbTable and MariaDb does not work?Zend_Auth_Adapter_DbTable 和 MariaDb 不工作?
【发布时间】:2013-07-19 05:52:12
【问题描述】:

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

【问题讨论】:

  • 基于this answer mysql版本之间也存在问题......也许那里的答案会在这种情况下对您有所帮助。

标签: php zend-framework zend-auth


【解决方案1】:

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

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

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

并且有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2017-06-28
    • 2020-04-02
    相关资源
    最近更新 更多