繁体   English   中英

MySQL数据库连接类,函数不返回任何结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM