Php CodeIgniter的SQLite插入中存在重复条目

Php CodeIgniter的SQLite插入中存在重复条目,php,sqlite,codeigniter,duplicates,Php,Sqlite,Codeigniter,Duplicates,当我在sqlite数据库上从codeigniter(PHP)运行此查询时,会得到重复的插入: INSERT INTO `users` SELECT 'test@email.com' AS `email`, '12345' AS `password` 当我从SQLite管理器运行它时,它只添加了一个条目。 但是,当我在PHP代码中将上述查询替换为以下内容时: INSERT INTO `users` (`email`,`password`) VALUES ('test@email.com',

当我在sqlite数据库上从codeigniter(PHP)运行此查询时,会得到重复的插入:

INSERT INTO `users` 
SELECT 'test@email.com' AS `email`,
'12345' AS `password`
当我从SQLite管理器运行它时,它只添加了一个条目。 但是,当我在PHP代码中将上述查询替换为以下内容时:

INSERT INTO `users`
(`email`,`password`) 
VALUES ('test@email.com', '12345') 
它只添加一次条目(其他内容都一样)。我还检查了,脚本只被调用一次

有人知道为什么会这样吗?
我知道可以通过将email字段设置为主键来修复,然后不会插入重复项,但这不是一个选项。

正确的SQL语法是最后一个

为什么不使用CodeIgniter的活动记录功能

$data = array('email' => $email, 'password' => $password);
$this->db->insert('users', $data);

当我需要添加多行数据时,查询变成:插入到
用户中
选择“val”作为
电子邮件
,“123”作为
传递
联合选择“val2”,“pass2”等。。。这就是为什么我需要第一个选择。sqlite语法不允许以标准方式执行,即插入。。。。。值('abc'、'123')、('def'、'456')等。到目前为止,我找到的唯一解决方案是强制使用唯一的密钥(例如ID字段或电子邮件密码对),以消除重复条目,但这只是一种解决方法,而不是解决方案。