首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DbTable适配器的ZendFramework2身份验证

使用DbTable适配器的ZendFramework2身份验证
EN

Stack Overflow用户
提问于 2015-11-21 00:58:13
回答 1查看 602关注 0票数 2

这是我的local.php配置:

代码语言:javascript
复制
'db' => array(
    'driver' => 'pdo_mysql',
    'dns' => 'mysql:dbname=xxxx;host=localhost;',
    'username' => 'xxxx',
    'password' => 'xxxx',
    'port' => 3306,
    'charset' => 'UTF8',
    'driver_options' => array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
    ),
),
'service_manager' => array(
    'factories' => array(
        'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
    )
)

这就是我的认证代码:

代码语言:javascript
复制
$authAdapter = new AuthAdapter($sm->get('Zend\Db\Adapter\Adapter'));
            $authAdapter->setTableName('users')
                ->setIdentityColumn('username')
                ->setCredentialColumn('password')
                ->setCredentialTreatment("SHA2(CONCAT({$salt}, ?, salt), '512') AND active = 1");

            $authAdapter->setIdentity($formData['username'])
                ->setCredential($formData['username']);

但是,当我尝试提交登录表单时,zend框架会抛出以下错误:

文件: /var/www/app/vendor/zendframework/zend-authentication/src/Adapter/DbTable/AbstractAdapter.php:331Message:向DbTable提供的参数未能生成有效的sql语句,请检查表和列名是否有效。 文件:无法执行/var/www/html/bookingSystemRewrite/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:244Message:Statement (3D0001046-没有选择数据库) File:/var/www/html/bookingSystemRewrite/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:239Message:SQLSTATE3D000:无效目录名称: 1046没有选择数据库

EN

回答 1

Stack Overflow用户

发布于 2015-11-21 14:37:19

当我调试Pdo驱动程序适配器时,我发现了我的问题所在。

第一个问题是按顺序排列的:

代码语言:javascript
复制
'dns' => 'mysql:dbname=xxxx;host=localhost;'

必须这样做:

代码语言:javascript
复制
'dsn' => 'mysql:dbname=xxxx;host=localhost;'

第二个问题是按照这个顺序:

代码语言:javascript
复制
->setCredentialTreatment("SHA2(CONCAT({$salt}, ?, salt), '512') AND active = 1");

必须这样做:

代码语言:javascript
复制
->setCredentialTreatment("SHA2(CONCAT('{$salt}', ?, salt), '512') AND active = 1");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33838487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档