mysqli_query() 需要参数 1,我找不到哪里做错了

mysqli_query() expects parameter 1 , i cant find where i done wrong

class AirData{
    function __construct() {
            $this->connect();
            echo "start";
    }


    function connect(){
        /*connect to data base change to PDO, for securely*/
        $connection = mysqli_connect('localhost', DB_USER, DB_PASS);

            if (!$connection) {
                die('Could not connect: ' . mysqli_error());
            }
            mysqli_set_charset($connection, 'utf8');
            $db_selected = mysqli_select_db($connection, DB_NAME);

            if (!$db_selected) {
                die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
            }
    }

    function insert($connection, $table, $fields, $values){
        $fields = implode(", ", $fields);
        $values = implode("','", $values);
        $sql="INSERT INTO $table(ID, $fields) VALUES ('', '$values')";

       /*error here something is wrong at here*/
        if(!mysqli_query($connection,$sql)){
            die('could not connect');
        } else {
            return TRUE;
        }
    }
}

$ALIST = new AirData;

我找不到我做错了什么,我切换了 $connection 和 $sql,仍然没有工作,mysqli_query() 期望参数 1 是我的sqli,

中给出的空值

谁能帮我看看?

声明一个将存储连接的私有变量。在 class 里面使用它。无需通过函数传递它。试试 -

class AirData{

    private $connection;
    function __construct() {
            $this->connect();
            echo "start";
    }


    function connect(){
        /*connect to data base change to PDO, for securely*/
        $this->connection = mysqli_connect('localhost', DB_USER, DB_PASS);

            if (!$this->connection) {
                die('Could not connect: ' . mysqli_error());
            }
            mysqli_set_charset($this->connection, 'utf8');
            $db_selected = mysqli_select_db($this->connection, DB_NAME);

            if (!$db_selected) {
                die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
            }
    }

    function insert($table, $fields, $values){
        $fields = implode(", ", $fields);
        $values = implode("','", $values);
        $sql="INSERT INTO $table(ID, $fields) VALUES ('', '$values')";

       /*error here something is wrong at here*/
        if(!mysqli_query($this->connection,$sql)){
            die('could not connect');
        } else {
            return TRUE;
        }
    }
}

请检查您的插入查询。您的查询无法正常工作,请检查一下。 你可以尝试像

这样的查询
 $sql="INSERT INTO $table(ID, '$fields') VALUES ('', '$values')";