我正在开发一个简单的内容管理系统,并在自定义一些代码的同时按照教程进行操作,我试图找到我做错了什么,但找不到问题。
无论如何,这是我的SQL连接代码。致命错误发生在 $result = $mysqli->query($query);
<?php
if (!class_exists('DB')){
class DB{
public function __construct(){
$mysqli = new mysqli('localhost', 'root', '', 'mdatabase');
if ($mysqli->connect_errno) {
printf('Connection Failed %s/n',$mysqli->connect_error);
exit();
}
$propertyc->connection = $mysqli;
}
public function insert($query){
$result = $mysqli->query($query);
return $result;
}
public function select(){
}
}
}
$db = new DB;
?>
警告:从第 11 行的 C:\wamp\www\phptesting\include\class-db.php 中的空值创建默认对象
注意:未定义的变量:c:\wamp\www\phptesting\include\class-db.php 第 15 行中的 mysqli
致命错误:在第 15 行的 C:\wamp\www\phptesting\include\class-db.php 中调用 null 上的成员函数 query()
你的$mysqli变量不是类的成员,所以它在DB::insert()函数的范围内为空。试试这个:
<?php
if (!class_exists('DB')){
class DB{
public function __construct(){
$this->mysqli = new mysqli('localhost', 'root', '', 'mdatabase');
if ($this->mysqli->connect_errno) {
printf('Connection Failed %s/n',$this->mysqli->connect_error);
exit();
}
$propertyc->connection = $this->mysqli;
}
public function insert($query){
$result = $this->mysqli->query($query);
return $result;
}
public function select(){
}
protected $mysqli;
}
}
$db = new DB;
?>
此外,您的$propertyc变量在那里将为空,因此$propertyc->连接不引用任何内容。