在这种情况下,我的查询工作正常,我已经在mysql上对它们进行了测试。
首先,我有一个自定义查询函数,在MySQLDatabase类中如下所示
public function query($query) {
$this->last_query = $query;
$resultado = mysqli_query($this->connection, $query);
$this->confirm_query($resultado);
return $resultado;
}
private function confirm_query($result) {
if ($result === FALSE) {
print_r(mysqli_fetch_assoc($result));
$output = "Error on query". mysqli_error($this->connection)."<br/>";
$output .= "Last query : ".$this->last_query;
die($output);
}
}
public function fetch_array($result_set){
return mysqli_fetch_array($result_set);
}
然后我有一个类叫用户使用MYSQL类
public static function find_by_id($id=0){
global $database;
$result_set = $database -> query("SELECT * FROM users WHERE id={$id}");
$found = $database ->fetch_array($result_set);
return $found;
}
最后,我以这种方式调用index.php中的方法
$result_set = User::find_by_id(1);
$found_user = $database ->fetch_array($result_set);
以下是一些事实:1。-当我插入数据库中存在的id值时,会出现此警告
警告:mysqli_fetch_array()要求参数1为给定数组的mysqli_结果
2.-当我插入数据库中不存在的id值时,会出现此警告。
警告:mysqli_fetch_array()期望参数1mysqli_result,空给定
结论是,mysqli_query不是返回结果,而是返回这样的结果对象,如果它在数据库中找到具有特定id的行。
mysqli_结果对象([当前_字段]=
我如何消除这个错误?
用这个。。
$result_set = User::find_by_id(1);
if($result_set){
$found_user = $database ->fetch_array($result_set);
}
found\u by\u id
方法已在此处调用mysqli::fetch\u array
:
$found = $database ->fetch_array($result_set);
如果写入以下内容,则返回获取的数组:
$result_set = User::find_by_id(1);
$found_user = $database ->fetch_array($result_set);//fetch_array again
你要把提取的数组传回fetch_array,这不起作用
这与写这篇文章完全一样:
$result_set = $database -> query("SELECT * FROM users WHERE id=1");
$found = $database ->fetch_array($result_set);
$found_user = $database->fetch_array($found);//<-- second call...
我已经使用(MySQLi过程)将我的php分成了2/3部分:第一部分专门用于db(open、execute、Total Row、infected Row、Close…),第二部分专门用于其他功能。以下是一个例子: db.php(第一个) 和functions.php(第二个) 当我尝试执行脚本时,我得到了以下警告错误: 如果您查看此函数以获取行数,则该参数将在函数内部进行测试,sql语句已在mys
当试图向会话添加数据(并检查它是否已经存在)时,我会收到以下警告。 警告:in_array()要求参数2为数组,给定null 我怎样才能解决这个问题? 它所指的代码: 我只有在清洁的浏览器上添加第一个产品时才会收到此警告。当我删除它并添加另一个产品时,警告就消失了。同样,如果我添加第二个产品。
我循环两个数组之间的字符串重叠,删除那些有一个值的值,以便只保留$check的空值,在这种情况下是$check[5]。 第二个$check是多维的。 第一个循环通过$names运行,第二个循环通过$check运行。 如果$names()中的当前字符串出现在的当前数组中,则该数组将被删除。 但是,控制台会打印一条警告:希望参数2是数组,如果给定空值。我觉得这很奇怪,因为应该等于$check中的一个数
为什么我会收到此错误消息: 警告:mysqli_free_result()期望参数1mysqli_result,给出布尔值 我的代码是:
我得到以下错误 警告:mysqli_error()只需要1个参数,给定0 问题出在代码的这一行: 整个代码是 包含的文件有以下一行