希望有人可以帮助我,我有以下错误,看了网上并尝试了一些东西,但似乎无法搞清楚,错误:
致命错误:在第38行的C:\ xampp \ htdocs \ cyberglide \ core-class.php中调用未定义的方法mysqli :: mysqli_fetch_all()
继承我的代码:
<?php
class Core {
function db_connect() {
global $db_username;
global $db_password;
global $db_host;
global $db_database;
static $conn;
$conn = new mysqli($db_host, $db_username, $db_password, $db_database);
if ($conn->connect_error) {
return '<h1>'."Opps there seems to be a problem!".'</h1>'.'<p>'."Your Config file is not setup correctly.".'</p>';
}
return $conn;
}
function db_content() {
//this requires a get, update and delete sections, before its complete
$conn = $this->db_connect();
if(mysqli_connect_errno()){
echo mysqli_connect_error();
}
$query = "SELECT * FROM content";
// Escape Query
$query = $conn->real_escape_string($query);
// Execute Query
if($result = $conn->query($query)){
// Cycle through results
while($row = $conn->mysqli_fetch_all()){
//echo $row->column;
}
}
}
}
$core = new Core();
?>
我正在尝试创建一个db_connect函数,我希望能够在需要数据库连接的网站上的任何地方调用,我试图在同一个类中的函数上调用该函数,我希望它能够抓取并显示数据库中的结果。我正在运行PHP 5.4.7,我在一个空白的php文件上调用数据库,其中包括要求包含类文件,然后使用此目录$ core-&gt; db_content();测试功能。我正在从头开始构建这个应用程序,从MySQLi指南运行(之前没有使用MySQLi,用于使用普通的MySQL查询),所以如果我做错了请告诉我,谢谢大家。
答案 0 :(得分:5)
mysqli_fetch_all
是mysqli_result
的方法,而不是mysqli
。
所以大概应该是$result->fetch_all()
参考文献:
重要:请记住mysqli_result::fetch_all
返回整个结果集,而不是您在代码中假设的行
答案 1 :(得分:4)
我在这里看到三个问题。
while($row = $conn->mysqli_fetch_all()){
fetch_all()
。fetch_all()
应与$ result对象一起使用fetch_all()
仅在安装mysqlnd
驱动程序时可用 - 通常不会。答案 2 :(得分:1)
只有$ result有该方法。如果要在while循环中使用它,请使用fetch_assoc()。 fetch_all()返回一个包含所有数据的关联数组。
while($row = $result->fetch_assoc()){
}
答案 3 :(得分:-1)
感谢所有人,现在它的工作正常,我一如既往($ row = $ conn-&gt; fetch_assoc()){ }之前并改为我上面提到的,但dident看到它应该是$ result而不是$ conn,谢谢你指出这一点。