没有人能告诉我这是什么意思吗
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";
}
}
4条答案
按热度按时间63lcw9qa1#
你不需要
进入
MySQL/PHP接受不带's的数字,但不接受字符串。此外,您可能需要使用默认PHP函数来转义您的输入。
alen0pnh2#
变量前后缺少'。可能需要先转义值。调试提示:将您的查询放入一个变量中,回显该变量并进行尝试。
xbp102n03#
您必须在VALUES中使用'..'和字符串
ljsrvy3e4#
您是否尝试使用SqliteManager插入数据?我的意思是,您是否知道问题是由php脚本或数据库引起的?如果您尝试在sqliteManager上运行查询,也请尝试使用“s”和(“)而不是(')