Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用CodeIgniter和MongoDB驱动程序将集合插入MongoDB时出现PHP错误_Php_Mongodb_Codeigniter_Database - Fatal编程技术网

尝试使用CodeIgniter和MongoDB驱动程序将集合插入MongoDB时出现PHP错误

尝试使用CodeIgniter和MongoDB驱动程序将集合插入MongoDB时出现PHP错误,php,mongodb,codeigniter,database,Php,Mongodb,Codeigniter,Database,我正在为一个荣誉级别的大学项目建立一个简单的管理系统 使用Alex Bible驱动程序,使用MongoDB构建Codeigniter。我现在正在尝试用硬编码的值执行一个简单的插入 我的型号 $username = "William"; $email = "Test"; $registerdata = array( "username" => $username, "email"

我正在为一个荣誉级别的大学项目建立一个简单的管理系统

使用Alex Bible驱动程序,使用MongoDB构建Codeigniter。我现在正在尝试用硬编码的值执行一个简单的插入

我的型号

$username = "William"; $email = "Test"; $registerdata = array( "username" => $username, "email" => $email); $collection = 'students'; $this->mongo_db->insert($collection, $registerdata); $username=“William”; $email=“Test”; $registerdata=数组( “用户名”=>$username, “电子邮件”=>$email); $collection=‘学生’; $this->mongo_db->insert($collection,$registerdata); 引发以下错误:

遇到PHP错误

严重性:通知

消息:未定义变量:insert

文件名:libraries/Mongo_db.php

电话号码:456

以及:

遇到PHP错误

严重性:警告

消息:MongoCollection::insert():预期参数1为数组或对象,如果给定null

文件名:libraries/Mongo_db.php

电话号码:456

有什么想法吗

它在库中调用此函数(如果有帮助):

* Insert a new document into the passed collection * * @usage = $this->mongo_db->insert('foo', $data = array()); */ public function insert($collection = "", $data = array()) { if(empty($collection)) show_error("No Mongo collection selected to insert into", 500); if(count($data) == 0 || !is_array($data)) show_error("Nothing to insert into Mongo collection or insert is not an array", 500); try { $this->db->{$collection}->insert($insert, array('safe' => TRUE)); if(isset($insert['_id'])) return($insert['_id']); else return(FALSE); } catch(MongoCursorException $e) { show_error("Insert of data into MongoDB failed: {$e->getMessage()}", 500); } } *在传递的集合中插入新文档 * *@usage=$this->mongo_db->insert('foo',$data=array()); */ 公共函数插入($collection=”“,$data=array()){ if(空($collection)) 显示_错误(“没有选择要插入的Mongo集合”,500); if(count($data)=0 | |!is_数组($data)) show_error(“插入Mongo集合的内容或插入的内容不是数组”,500); 试一试{ $this->db->{$collection}->insert($insert,array('safe'=>TRUE)); 如果(isset($insert[''U id'])) 返回($insert[''u id']); 其他的 返回(假); }捕获量(MongoCursorException$e){ show_error(“将数据插入MongoDB失败:{$e->getMessage()}”,500); } }
您的方法签名是错误的-我想知道您是否在没有安装整个库的情况下复制并粘贴了该库的版本2?新方法是:

public function insert($collection = '', $insert = array(), $options = array())

在应用程序中重新安装库,并检查库文件是否已全部提取。

那种
insert
方法看起来有点奇怪。它引用了一个名为
$insert
的变量,但我看不出它是从哪里得到的。你写了那个方法吗?如果是这样的话,也许你的意思是
$data
?我使用的插入方法来自这里的MongoDB驱动程序:这正是问题所在,我还没有尝试过,但我知道这就是问题所在,我把y型头发拔了几个小时,看了都看不见!!谢谢:)太好了。将库视为“不可编辑”是值得的——将它们作为Git子模块或Composer依赖项有助于避免这些库+编辑问题
:)