警告:mysqli_query() 期望参数 1 为 mysqli,第 14 行 C:xampphtdocsFinaldata.php 中给出的 null

2021-12-25 00:00:00 oop php mysqli

我需要帮助弄清楚为什么这是错误

I need help to figure out why this is error

<?php
    class data
    {
        private $db;
        public $nama, $password, $alamat, $jk, $kodepos, $alasan, $email;
        function _construct($db)
        {
            $this->db = $db;
        }
        public function input_data()
        {
            $query = "INSERT INTO data (nama, password, alamat, jeniskelamin, kodepos, alasan, email)VALUES('$this->nama', '$this->password',
            '$this->alamat', '$this->jk', '$this->kodepos', '$this->alasan', '$this->email')";
            $insert = mysqli_query($this->db, $query);
            return $insert;
        }
        public function lihat_data()
        {
            $query = "SELECT * FROM data ORDER BY id";
            $view = mysqli_query($this->db, $query);
            return $view;
        }
    }
?>

推荐答案

您的警告表示您的连接失败!那是因为它从未被制作过!

Your warning means that your connection has failed! And that's because it was never made!

function __construct($db) {
       //^^You need 2 underscores
    $this->db = $db;
}

还有为什么 __construct() 需要 2x 下划线?因为这是一种神奇的方法!以及手册中的引用:

Also why does __construct() needs 2x underscores? Because it's a magic method! And a quote from the manual:

注意:PHP 保留所有以 __ 开头的函数名作为魔法.建议您不要在 PHP 中使用带有 __ 的函数名,除非您需要一些文档化的魔法功能.

Caution: PHP reserves all function names starting with __ as magical. It is recommended that you do not use function names with __ in PHP unless you want some documented magic functionality.

有关魔术方法的更多信息,请参阅:http://php.net/手册/en/language.oop5.magic.php
有关构造函数的更多信息,请参阅:http://php.net/manual/en/language.oop5.decon.php

For more information about magic methods see: http://php.net/manual/en/language.oop5.magic.php
For more information about the constructor see: http://php.net/manual/en/language.oop5.decon.php

相关文章