我最近将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之间有什么区别。
答案 0 :(得分:0)
此问题基于mysql版本。
我迁移到mariadb并更改了凭据以转换为保留我的配置文件中的utf8的字符。
- > setCredentialTreatment(“CAST(MD5(CONCAT(MD5(?),salt))AS CHAR)AND isactive ='1'”);
并且有效。