gpt4 book ai didi

authentication - 使用 Db 表失败的 Zend 框架 2 身份验证

转载 作者:行者123 更新时间:2023-12-04 05:26:51 24 4
gpt4 key购买 nike

我已关注 zend instructions使用数据库表实现我的网络身份验证。

完全一样的代码,但是在渲染页面的时候,出现了以下异常:

    Zend\Authentication\Adapter\Exception\RuntimeException
File:
C:\xampp\htdocs\pfc\vendor\ZF2\library\Zend\Authentication\Adapter\DbTable.php
Mensaje:
The supplied parameters to DbTable failed to produce a valid sql statement, please
check table and column names for validity.

由这个其他产生:
    Zend\Db\Adapter\Exception\InvalidQueryException
File:
C:\xampp\htdocs\pfc\vendor\ZF2\library\Zend\Db\Adapter\Driver\Mysqli\Statement.php
Mensaje:
Statement couldn't be produced with sql: SELECT `users`.*, (CASE WHEN `password` = ?
THEN 1 ELSE 0 END) AS `zend_auth_credential_match` FROM `users` WHERE `mail` = ?

好像是 Statement.php 不能执行上面的 sql,但是我用 phpmyadmin 替换了 ?对于字符串和工作正常。

我确信 $dbAdapter 也能正常工作,因为我已经测试过它并且列名是
“邮件”和“密码”。

这在我的代码中,我也放了 $dbAdapter 测试代码。
    $dbAdapter = new DbAdapter(array(   //This DbAdapter Work ok sure!!
'driver' => 'Mysqli',
'database' => 'securedraw',
'username' => 'root',
'password' => ''
));

$fp = function($name) use ($dbAdapter) { return $dbAdapter->driver->formatParameterName($name);};
$sql = 'SELECT * FROM ' . $qi('users') . ' WHERE id = ' . $fp('id');
$statement = $dbAdapter->query($sql);
$parameters = array('id' => 1);
$sqlResult = $statement->execute($parameters);
$row = $sqlResult->current();
$mail = $row['mail'];
$password = $row['password']; //until here test $dbAdapter exitly!!

//Start the auth proccess!!
$authAdapter = new AuthDbTableAdapter($dbAdapter);
$authAdapter->setTableName('users')
->setIdentityColumn('mail')
->setCredentialColumn('password');
$authAdapter->setIdentity('josep')
->setCredential('josep');
$authResult = $authAdapter->authenticate(); //This is the fail method!!!

最佳答案

经过对该主题的更多研究,我发现如果将 dbAdapter 的驱动程序更改为 pdo_mysql,则身份验证方法可以正常工作。

问题是我不想使用 PDO,因为 SGBD 将来不会改变。

有人知道因为发生这种情况吗?

关于authentication - 使用 Db 表失败的 Zend 框架 2 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com