奈伯蒂能否告诉我这是什么意思

INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES('s',1,1,1,1,1);


但是当我尝试

INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES(1,1,1,1,1,1);


有用。我不能插入字符串?怎么了 ?
我的SQLite表看起来像

CREATE TABLE users (
  id          integer PRIMARY KEY AUTOINCREMENT NOT NULL,
  first_name  varchar(50),
  last_name   varchar(50),
  email       varchar(50),
  username    varchar(50),
  password    varchar(50),
  privilege   varchar(50)
);


我的PHP函数看起来像

public function insert_user($first_name, $last_name, $email, $username, $password, $privilege) {
    try {
        $db = new SQLite3($this->db_path);

        $db->query("INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES($first_name,$last_name,$email,$username,$password,$privilege);");

        $last_id = $db->lastInsertRowID();
        $db->close();
        return $last_id;
    } catch (Exception $e) {
        echo 'Exception caught: ', $e->getMessage(), "\n";
    }
}

最佳答案

$db->query("INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES('$first_name','$last_name','$email','$username','$password','$privilege');")


在变量周围缺少'。可能想先转义值。
调试提示:将查询放入变量中,回显该变量并尝试。

09-19 16:32