我有这段代码:
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')
答案 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行的''附近使用正确的语法
使用你的代码就是同样的错误。