PHP mysql类没有插入

时间:2015-03-30 14:18:32

标签: php mysqli

我有这段代码:

class mysql {

public $mysql;

function __construct($host, $user, $pass, $db){
    $this->mysql = new mysqli($host, $user, $pass, $db);

    if($this->mysql->connect_errno)
        exit('Error connecting to the database');
}

public function replace(array $var){
    $str = "";
    foreach($var as $k => $v){
        $str .= substr_replace($v, "'", 0) . substr_replace ($v, "',", -1);
    }
    $str[strlen($str)-1] = "";
    return $str;
}

public function insert($table, array $kv){
    $p1 = implode(',', array_keys($kv));
    $p2 = $this->replace($kv);
    $q = "INSERT INTO $table ($p1) VALUES ($p2)";
    echo $q;
    echo $this->mysql->query($q);

}


}

我使用该功能,没有数据插入数据库我不能在DB

上找到任何东西

回声输出:

INSERT INTO users (username,password,email) VALUES ('Hi','Hwghrwhw','WREHRWWRWRGH')

2 个答案:

答案 0 :(得分:0)

我认为您的代码问题是丢失了您的代码名称

INSERT INTO `users` (`username`,`password`,`email`) VALUES ('Hi','Hwghrwhw','WREHRWWRWRGH')

PASSWORD是受保护的关键字。在这里你改变了代码:

public function insert($table, array $kv){
    $p1 = implode('`,`', array_keys($kv));
    $p2 = $this->replace($kv);
    $q = "INSERT INTO `$table` (`$p1`) VALUES ($p2)";
    echo $q;
    echo $this->mysql->query($q);
}

答案 1 :(得分:0)

如果我试图回应mysqli错误,我会得到这个:

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的''附近使用正确的语法

使用你的代码就是同样的错误。