【发布时间】:2015-04-10 15:43:12
【问题描述】:
我有一个非常奇怪的问题:当我在数据库上手动执行一个简单的查询时,我得到了预期的结果。当我使用 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,在 localhost 上运行)时,我会得到该表中的所有类别。
我不知道为什么结果会有所不同。据我所知,没有例外,我 100% 确信查询会在同一台机器和数据库上执行。这可能是什么?
【问题讨论】:
-
但它返回了什么?如果
var_dump(Database::findAllCategories());输出什么? -
检查是否连接到数据库。如果没有连接到数据库尝试抛出错误
-
我自己刚刚找到了解决方案,但无论如何感谢您的想法!
-
如果您认为它适用于其他人,请您添加您的解决方案供其他人查找。如果没有,请发表评论。
-
我已经添加了答案。