【发布时间】:2014-12-18 02:31:47
【问题描述】:
我有 2 个类,控制器和连接器。它们由 delete.php 使用。我说错了
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\pracownia\kontroler.php on line 38
Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\pracownia\kontroler.php on line 44
有人知道我在这里犯错了吗?对我来说,连接的链接似乎被错误地传递给了某个地方的控制器类。或者退货不能按我的意愿工作。 在我不得不上课之前,这一切都奏效了……
类连接器在这里:
<?php
class connector {
private $db_handle="";
private $user_name;
private $password;
private $database;
public static $server = "127.0.0.1";
function __construct($user_name="", $password="", $database="")
{
$this->user_name = $user_name;
$this->password = $password;
$this->database = $database;
}
function connect()
{
$this->db_handle = mysqli_connect(self::$server,$this->user_name,$this->password);
if(!$this->db_handle)
{
die('Could not connect: ' . mysqli_error());
}
mysqli_select_db($this->db_handle,$this->database);
return $this->db_handle;
}
function disconnect()
{
mysqli_close($this->db_handle);
}
}
?>
类控制器在这里
<?php
class kontroler {
private $db_handle;
private $name;
private $surname;
private $password;
private $email;
private $id;
private $sql;
function _construct($db_handle="")
{
$this->db_handle = $db_handle;
}
function delete_user($id="")
{
//$this->sql = "DELETE FROM UZYTKOWNICY WHERE ID_UZ=$id";
if(mysqli_query($this->db_handle,"DELETE FROM UZYTKOWNICY WHERE ID_UZ=$id"))
{
echo "Record deleted successfully";
}
else
{
die ('Error deleting record: ' . mysqli_error($this->db_handle));
}
}
}
?>
并删除.php:
<?php
global $db_handle;
include 'kontroler.php';
include 'connector.php';
//require_once('kontroler.php');
//require_once('connector.php');
$connection = new connector("root","","proj");
$db_handle = $connection->connect();
$kontrol = new kontroler($db_handle);
$kontrol->delete_user('$_POST[id]');
$connection->disconnect();
?>
【问题讨论】:
-
我更改了警告。它说'null given'
-
为什么服务器属性是静态的?你的意思是让它
protected? -
在 mysql_query() 中你必须提供一个你实际分配给查询的变量。
-
为什么有这么多不同的课程?为什么不只做 1 节课?
-
好吧,调试你的代码。
var_dump()相关变量的每一步,以确保它们符合您的期望。当您发现期望与现实之间存在差异时,您就找到了错误。