1

我在 linux 机器上安装了 Cakephp 应用程序。已安装 Mysql 驱动程序并已删除 php-pecl-acl。Cookie 没有问题。用户和密码存在于数据库中。密码是数据库中的 CHAR(40)。

Auth->login() 方法总是返回 false,即使 sql 查询调试日志显示影响的行 = 1

array(
'log' => array(
    (int) 0 => array(
        'query' => 'SELECT `User`.`id`, `User`.`username`, `User`.`password`, `User`.`email`, FROM `somedatabase`.`users` AS `User`   WHERE `User`.`username` = 'someuser' AND `User`.`password` = '2d7a34c9ef8efa2cfdf4b89175f7edec1cd0ddda'    LIMIT 1',
        'params' => array(),
        'affected' => (int) 1,
        'numRows' => (int) 1,
        'took' => (float) 2
    )
),
'count' => (int) 1,
'time' => (float) 2

请帮忙。谢谢你。

4

2 回答 2

0

我有同样的问题。我联系了我的服务器人员,他说我们没有安装 PECL 或 php-pdo 软件包。会有什么问题。

于 2013-09-10T13:07:37.013 回答
0

听起来与我遇到的完全相同的问题最终成为与 PDO / PECL 相关的特定于服务器的问题:

$this->Auth->login() 创建返回 1 行的正确查询,但 IF 检查失败(服务器特定问题)


编辑: OP评论他如何修复:

我卸载了PECL,然后卸载了php-pdo并放回了原来的php.ini文件。之后,我从亚马逊重新安装了 mysql-php 和 php-pdo 包,它工作正常。你是对的,这是 pdo 安装的服务器问题。

于 2012-11-05T17:38:00.843 回答