php - 查询不返回结果,但手动执行时返回结果

标签 php mysql pdo

我有一个非常奇怪的问题:当我在数据库上手动执行一个简单的查询时,我得到了预期的结果。当我使用 PHP 脚本运行它时,我没有得到任何结果。

我的代码:

class Database {

    private static function connect() {
        return new PDO("mysql:host=localhost;dbname=db_name", 'db_user', 'db_password');
    }

    public static function findAllCategories() {
        $pdo = Database::connect();

        $stmt = $pdo->prepare("SELECT * FROM categories");
        if (!$stmt) {
            printf("Query failed: %s\n", $pdo->error);
            exit;
        }

        $stmt->execute();
        return $stmt->fetchAll();
    }

}

当我使用Database::findAllCategories()从脚本调用上面的代码时,上面的代码不会产生任何结果,但是当我手动执行查询时(使用phpmyadmin,在本地主机上运行),我得到了所有结果该表中的类别。

我不知道为什么结果会有所不同。据我所知,没有异常(exception),我 100% 确定查询在同一台计算机和数据库上执行。这可能是什么?

最佳答案

当然,一旦您发布问题,您就会很清楚可能导致问题的原因......:)

看来我的db_user不知何故失去了对数据库db_name的权限。虽然我预计会收到“访问被拒绝”异常,但它并没有发生,只是返回了一个空数组。我向用户授予了必要的权限并且它有效。

关于php - 查询不返回结果,但手动执行时返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565548/

相关文章:

stored-procedures - 是否可以在 SQL 语句中调用过程?

java - 对特定操作执行 MySQL 查询

php - 使用 ODBC 使用 msaccess 创建 PHP PDO 连接时出现 fatal error

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - Jquery Countdown Timer 在页面刷新时没有重置?

php - 在 PHP 中不使用 SMTP 类发送附件邮件的最佳方法

php - 将动态 jQuery post 传递给 PHP

php - 如何在 ZF2 中编写满足 GET 参数的路由?

javascript - 在 angularJs 中从 Controller 调用同时 $http 服务?

php - 在 MySQL 中返回客户端日志的最佳方法是什么