naybody能告诉我这意味着什么
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";
}
}
答案 0 :(得分:4)
你不需要转
VALUES($first_name,$last_name,$email,$username,$password,$privilege
到
VALUES('$first_name','$last_name','$email','$username','$password','$privilege' )
MySQL / PHP接受没有's的数字,但不接受字符串。此外,您可能希望使用默认的PHP函数来转义输入。
答案 1 :(得分:1)
你必须在VALUES
中使用'..'和字符串 $db->query("INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES('$first_name','$last_name','$email','$username','$password','$privilege');");
答案 2 :(得分:1)
$db->query("INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES('$first_name','$last_name','$email','$username','$password','$privilege');")
在变量周围缺少'。可能想先逃避价值观。 调试提示:将查询放入变量中,回显该变量并尝试它。
答案 3 :(得分:0)
您是否尝试使用SqliteManager插入数据?我的意思是你知道这个问题是由php脚本或数据库造成的。如果您尝试在sqlitemanager上运行查询。同时尝试使用“s”和(“)not(')