能告诉我的意思吗
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";
}
}
你不需要打开吗
VALUES($first_name,$last_name,$email,$username,$password,$privilege
进入
VALUES('$first_name','$last_name','$email','$username','$password','$privilege' )
MySQL/PHP接受不带"的数字,但不接受字符串。此外,您可能希望使用默认的PHP函数来转义输入。
$db->query("INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES('$first_name','$last_name','$email','$username','$password','$privilege');")
变量周围缺少一个"。可能要先转义值。调试技巧:将查询放入一个变量中,回显该变量并尝试。
您必须使用'..'VALUES 中有字符串
$db->query("INSERT INTO users(first_name,last_name,email,username,password,privilege) VALUES('$first_name','$last_name','$email','$username','$password','$privilege');");
是否尝试使用SqliteManager插入数据?我的意思是,你知道这个问题是由php脚本或数据库引起的吗。如果您尝试在sqlitemanager上运行查询。同时尝试将"s"与(")而非(')一起使用