致命错误:在第43行的C:\ xampp \ htdocs \ tugas1 \ m_programKerja.php中调用null上的成员函数query()

时间:2016-05-16 23:28:18

标签: model-view-controller mysqli null

我知道这个问题已被问了很多,而且我一直在寻找我的问题的答案,但我还没有找到它。

当我运行index.php时,它表示致命错误:在第43行的C:\ xampp \ htdocs \ tugas1 \ m_programKerja.php中调用null上的成员函数query()。我收到错误因为我没有在我的数据库表上插入任何东西?我确实插入了一些数据,但我仍然遇到了这个错误......

这里是代码: koneksiMVC.php

<?php
$mysqli = new mysqli("localhost", "root", "", "praktikumweb");
?>

m_programKerja.php

<?php

class m_programKerja {

public $hasil = array();
private $mysqli;

public function __construct() {
    require 'koneksiMVC.php';
}

public function setPogramKerja($nomorProgram, $namaProgram, $suratKeterangan) {
    $rs = $this->mysqli->query( "INSERT INTO proker VALUES   
                                ($nomorProgram,
                                 '$namaProgram',
                                 '$suratKeterangan')
                                ");
}

public function hapusProgramKerja($nomorProgram) {
    $rs = $this->mysqli->query( "DELETE from proker WHERE 
                                    nomorProgram = $nomorProgram
                                ");
}

public function editProgramKerja($nomorProgram, $namaProgram, $suratKeterangan) {
    $rs = $this->mysqli->query( "UPDATE proker 
                                    SET namaProgram = '$namaProgram',
                                        suratKeterangan= '$suratKeterangan'
                                    WHERE nomorProgram = $nomorProgram
                                ");
}

public function getPogramKerja($nomorProgram) {
    $rs = $this->mysqli->query( "SELECT * FROM proker
                                    WHERE nomorProgram = $nomorProgram
                                ");
    $this->hasil = $rs->fetch_array();
    return $this->hasil;
}

public function getSemuaPogramKerja() {
    $rs = $this->mysqli->query( "SELECT * FROM proker "); //this is line 43

    while ($row = $rs->fetch_assoc()) {
        $this->hasil[] = $row;
    }
    return $this->hasil;
}
}
?>

和index.php

<?php
include_once("c_programKerja.php");
$controller = new c_programKerja();
if (isset($_GET['d'])) {
$controller->delete($_GET['d']);
} else if (isset($_GET['u'])) {
$controller->viewUpdate($_GET['u']);
} else if (isset($_GET['i'])) {
$controller->viewInsert();
} else {
$controller->invoke();
}
?>

1 个答案:

答案 0 :(得分:0)

您收到错误是因为您的yposition对象在您的行上可能为空:$mysqli ...

您确定要包含/执行$rs = $this->mysqli->query(应该设置koneksiMVC.php的内容吗?尝试将$mysqli单独移动到您自己的文档中。而不是从函数调用中的页面加载它。

此外,在您实例化$mysqli = new mysqli("localhost", "root", "", "praktikumweb");对象后,添加以下行,如下所示:

mysqli

如果存在任何与连接相关的错误并停止执行,则会打印出来。