php mysqli 查询期望参数 1 为字符串
Posted
技术标签:
【中文标题】php mysqli 查询期望参数 1 为字符串【英文标题】:php mysqli query expects parameter 1 be to string 【发布时间】:2016-09-15 22:31:25 【问题描述】:我正在编写一个用户数据库,该数据库调用 find_all 的一个静态方法,该方法调用一个查询方法,该方法反过来返回数据库的所有值,但是每次我尝试调用它时都会遇到麻烦这些错误因为 mysqli_query() 期望参数 1 是 mysqli,字符串在第 20 行的 C:\xampp\htdocs\photogallery\includes\database.php 中给出。我该怎么办?这是代码sn-p 用户.php
require_once("database.php");
class User
public static function find_all()
global $database;
$sql= "select * from users";
$result_set = $database->query($sql);
return $result_set;
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;
数据库.php
public function query($sql)
echo $sql;
$this->last_query = $sql;
echo $result = mysqli_query($sql,$this->connection);
$this->confirm_query($result);
return $result;
public function confirm_query($result)
if(!$result)
die("Database query failed:".mysqli_error());
以及调用代码的index.php如下:
<?php
require_once("../includes/database.php");
require_once("../includes/user.php");
$q = User::find_all();
?>
每次出现错误时,mysqli_query 都希望参数 1 为 mysqli,字符串在第 20 行的 C:\xampp\htdocs\photogallery\includes\database.php 中给出。请帮帮我??
【问题讨论】:
使用mysqli_query($this->connection,$sql);
第一个参数是connection variable
,第二个是query variable
。
【参考方案1】:
当在程序样式中使用mysqli
时,mysqli_query
的第一个参数必须是连接对象
来自官方documentation:
mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
所以你需要改变参数的顺序,$this->connection
排在第一位,$sql
排在第二位:
$result = mysqli_query($this->connection, $sql);
【讨论】:
但现在这些给了我其他错误可捕获的致命错误:无法将类 mysqli_result 的对象转换为第 20 行 C:\xampp\htdocs\photogallery\includes\database.php 中的字符串跨度> @MonuJoshi 那是因为$result
不是字符串。删除echo
【参考方案2】:
只需阅读文档: 混的
mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
你必须将你的论点改为
mysqli_query($this->connection, $sql)
【讨论】:
以上是关于php mysqli 查询期望参数 1 为字符串的主要内容,如果未能解决你的问题,请参考以下文章
MediaWiki:PHP 警告:mysqli::real_escape_string() 期望参数 1 是字符串,给定对象
INSERT 查询产生“警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,给定布尔值”
PHP登录页面因root用户错误而拒绝访问,并期望参数1为mysqli,bool给定[重复]
警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,布尔值在 /home/digibeem/public_html/forgot_pass.php 第 55 行 [