我已经尝试了一天以上来获取FetchAll()方法来帮助我从数据库中显示数组。但我所有的努力都失败了。而不是print_r()返回一个数组,它给了我这个数组()。请帮助我。 类页面中的代码:
class Article {
public function fetch_all(){
global $conn;
$ass = $conn->prepare("SELECT * FROM articles");
$ass->execute();
return $ass->fetchAll();
}
}
显示页面中的代码为:
$article = new Article;
$articles = $article->fetch_all();
print_r($articles);
答案 0 :(得分:4)
$query
,$ass->fetchAll();
就是您应该拥有的。
答案 1 :(得分:0)
$query
未定义。考虑将数据库对象注入Article对象以避免使用全局变量。
class Article {
public function fetch_all(PDO $conn){
$ass = $conn->prepare("SELECT * FROM articles");
$ass->execute();
return $ass->fetchAll();
}
}
$article = new Article;
$articles = $article->fetch_all($conn);
print_r($articles);
注入PDO对象可以使代码更容易更改。
答案 2 :(得分:0)
我在下面尝试了以下代码,它完美无缺。
class Article {
public function fetch_all(){
global $connection;
$ass = $connection->prepare("SELECT * FROM test");
$ass->execute();
return $ass->fetchAll();
}
}
$article = new Article;
$articles = $article->fetch_all();
print_r($articles);
如上所示,我使用了我的$连接,它完美无缺。 所以,问题肯定在你的$ conn(连接)上。 再次检查你的连接。
答案 3 :(得分:0)
它最终开始返回完整数组。我所做的只是卸载我正在使用的WAMP服务器并将其替换为另一个。
答案 4 :(得分:-1)
我遇到了同样的问题。
准备问题。
您可以将prepare
替换为query
$ass = $conn->query("SELECT * FROM articles");
return $ass->fetchAll();
执行prepare
PDO 需要execute
;
准备要由 PDOStatement :: execute()方法。
或者这一个
$ass = $conn->prepare("SELECT * FROM articles");
$ass->execute();
return $ass->fetchAll();