[英]MySQL Database connection class, function not returning any results
我目前正在一个小项目上,为了上帝的爱,我无法使这个PHP类正常工作。
问题是,当我在此处键入INSERT或任何其他命令时, doQuery
不会返回任何内容,也不会修改数据库,即使从类内调用时也始终返回false。
class CONN {
private $connection;
public function __construct() {
$this->connection = new mysqli($address, $user, $pass, $db);
if ($this->connection->connect_error) {
// Throw error here
} else {
$this->doQuery("SET NAMES 'utf8'");
}
}
public function doQuery($query){
return $this->connection->query($this->connection->real_escape_string($query));
}
}
解决了
real_escape_string甚至转义了'
,因此查询无法工作。
我认为您的代码永远不会那样工作,我看到的主要问题是以下代码:
$this->connection = new mysqli($address, $user, $pass, $db);
$ adress,$ user,$ pass,$ db来自何处? 也许您错过了构造函数参数。
仅将real_escape_string
用于转义变量(通常由用户提交),例如
$this->doQuery("SELECT * FROM table WHERE something='".$this->connection->real_escape_string($_POST['data'])."'"
不要逃避整个查询
public function doQuery($query){
return $this->connection->query($query);
}
您需要创建/提供其他类参数。 创建对象时,类构造器需要这些值来建立连接。 所以:
class Con
{
private $address;
private $username;
private $password;
private $database;
public function __construct($address, $username, $password,$database)
{
$this->address = $address;
$this->username = $username;
$this->password = $password;
$this->database = $database;
}
public function connect()
{
$con = mysqli_connect($this->address, $this->username, $this->password, $this->database);
return $con;
}
}
$conobject = new Con("localhost","root","","mybase");
$convar = $conobject->connect();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.