- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我使用 Codeigniter v2.1.4 在 sqlite3 数据库中插入一些值。
问题是当我尝试插入一个批处理时它给我一个错误:
>[17-Jan-2014 22:44:17 UTC] PHP Fatal error: Call to a member function execute() on a >non-object in E:\Repository\cashy-support-app2\system\database\drivers\pdo\pdo_driver.php >on line 193
>[17-Jan-2014 22:44:17 UTC] PHP Stack trace:
>[17-Jan-2014 22:44:17 UTC] PHP 1. {main}() E:\Repository\cashy-support-app2\index.php:0
>[17-Jan-2014 22:44:17 UTC] PHP 2. require_once() E:\Repository\cashy-support-app2\index.php:202
>[17-Jan-2014 22:44:17 UTC] PHP 3. call_user_func_array() E:\Repository\cashy-support-app2\system\core\CodeIgniter.php:359
>[17-Jan-2014 22:44:17 UTC] PHP 4. Main_controller->index() E:\Repository\cashy-support-app2\system\core\CodeIgniter.php:359
>[17-Jan-2014 22:44:17 UTC] PHP 5. Favorites_Model->addToTemp() E:\Repository\cashy-support-app2\application\controllers\main_controller.php:7
>[17-Jan-2014 22:44:17 UTC] PHP 6. CI_DB_driver->query() E:\Repository\cashy-support-app2\application\models\favorites_model.php:106
>[17-Jan-2014 22:44:17 UTC] PHP 7. CI_DB_driver->simple_query() E:\Repository\cashy-support-app2\system\database\DB_driver.php:299
>[17-Jan-2014 22:44:17 UTC] PHP 8. CI_DB_pdo_driver->_execute() E:\Repository\cashy-support-app2\system\database\DB_driver.php:453
如果我只插入一行,它工作正常。
这是有问题的查询:
INSERT INTO temp (Date, Name)
Values("test","test2"),("test","test2"),("test","test2");
如果我使用这个:
INSERT INTO temp (Date, Name) Values("test","test2");
它工作正常。
此外,如果我使用 db->insert(tablename, values)
它工作正常,但如果我使用 db->insert_batch(tablename, array)
,我得到和上面提到的一样的错误。
在单独的 sqlite 浏览器中,我可以毫无问题地在同一个数据库上执行上述查询。
这是我在 Codeigniter 中的数据库配置:
$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = 'sqlite:'.APPPATH.'db/Support_Mails.db';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';//APPPATH.'db/Support_Mails.db';
$db['default']['dbdriver'] = 'pdo';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = APPPATH.'cache';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
这是数据库:
CREATE TABLE [temp] (
[Date] [TEXT(255)],
[Name] [TEXT(255)],
[Mail] [TEXT(255)],
[Subject] [TEXT(255)],
[Conversation] [TEXT(255)],
[Language] [TEXT(255)],
[Body] [TEXT(30000)],
[ROWID] [TEXT(255)],
[TableName] [TEXT(255)],
[userid] [TEXT(255)]);
使用 print_r(array) 后的数组如下所示:
[18-Jan-2014 10:20:04 UTC] Array
(
[0] => Array
(
[Date] => test
[Name] => test
)
[1] => Array
(
[Date] => test
[Name] => test
)
)
知道它为什么这样做吗?(不知何故,我认为 Codeigniter 设置中存在问题,而不是查询本身存在问题,因为我使用 sqlite 浏览器在同一数据库上使用了相同的查询并且它工作正常)
最佳答案
我已将其作为 CodeIgniter 2.1.4 问题发布在 github 上,正如我发现的那样,“CI 2.1.4 不支持 SQLite3,2.1.x 中的 PDO 驱动程序是实验性的,这意味着错误是意料之中的。 3.0-dev 中提供了通过“sqlite3”和“pdo/sqlite”驱动程序的完整 SQLite3 支持”- https://github.com/EllisLab/CodeIgniter/issues/2834#issuecomment-32838494
关于php - Codeigniter insert_batch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21197533/
这个问题在这里已经有了答案: How to create Codeigniter batch insert array (4 个答案) 关闭去年。 好的,我正在尝试弄清楚如何使用 insert_ba
我正在尝试插入一个使用 AJAX 来启动 Controller 的表单。该表单是通过搜索另一个数据库生成的,该数据库创建了一个循环(foreach)表。用户将他/她的徽章扫描到输入字段中,然后在选项卡
我使用以下语句通过 codeigniter 在 mysql 中插入数据。 $this->db->insert_batch($table, $query); $query 是动态生成的,每个数组元素上
我正在编写一个通过短信网关发送短信的应用程序,并且(显然)我在数据库中保留了该消息的副本。到目前为止,出于原型(prototype)设计的目的,我使用 Codeigniter 的 Active Rec
我正在使用 codeigniter insert_batch() 函数,而不是使用简单的插入来循环数据。我的行数约为 390,其中只有 100 行插入,因为 codeigniter(或 mysql)不
我使用 Codeigniter v2.1.4 在 sqlite3 数据库中插入一些值。 问题是当我尝试插入一个批处理时它给我一个错误: >[17-Jan-2014 22:44:17 UTC] PHP
是否可以将 insert_batch 与带有 codeigniter 的选择一起使用?例如,我需要插入一批: INSERT INTO a (a_id, b_id, c_id) SELECT {
我正在使用 codeignitor 的插入批处理功能向表中插入多行。 $this->db->insert_batch('table', $sizes); 我的 $sizes 数组看起来像这样
我混合使用 ajax 和 codeigniter 来进行多次插入。 代码是这样的: JS function save(path){ $.ajax({ url: "",
我想一次将五十个人的记录插入数据库(可以增加)。当用户单击保存按钮时,数据应该保存在数据库中。最好的方法是什么? 这是我的 Controller function month_end_data()
我正在使用 insert_batch() 将 10000 多行批量插入到数据库的表中。我正在做一些测试,我注意到有时所有 10.000 多行都被正确插入,但在某些情况下,我在表的总计数中遗漏了 100
我尝试使用 codeigniter 中的 insertbatch 将数据插入到表中。我收到查询,当我将该查询运行到 phpmyadmin sql 查询时,它工作得很好。当我调用函数时它不起作用。 数组
我正在尝试将数组作为一行插入到数据库上的“费用”表中: public function insert_expense($expenses){ $this->db->insert_batch('
好吧,所以我在一个数组中有一个巨大的条目列表(比如 500 多个),我需要将其插入到 MySQL 数据库中。 我有一个填充数组的循环,如下所示: $sms_to_insert[] = array(
我是一名优秀的程序员,十分优秀!