【问题标题】:php mysqli query expects parameter 1 be to stringphp mysqli 查询期望参数 1 为字符串
【发布时间】: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-&gt;connection,$sql); 第一个参数是connection variable,第二个是query variable

标签: php mysql database oop mysqli


【解决方案1】:

当在程序样式中使用mysqli 时,mysqli_query 的第一个参数必须是连接对象

来自官方documentation

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

所以你需要改变参数的顺序,$this-&gt;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-&gt;connection, $sql)

【讨论】:

    猜你喜欢
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多