【发布时间】:2018-05-14 02:49:58
【问题描述】:
我正在尝试使用 CodeIgniter 3.x 将数据插入到 MySqli 表中。
由于某种原因,CodeIgniter 查询生成器documentation 中定义的数据库方法似乎都不适合我。
使用
$data = array(
'created_at' => date('Y/m/d h:i:s'),
'updated_at' => date('Y/m/d h:i:s'),
'first_name' => $firstName,
'last_name' => $lastName,
'email' => $email,
'auth_key' => $password,
'enabled' => '1',
'deleted' => '0');
$test = $this->db->insert('users', $data);
给我错误:调用未定义的方法“插入”。这是 CodeIgniter 文档中定义的方法。尽管我也在我的模型中尝试过,但我正在从我的控制器中调用此代码。
我已经能够使用此处的代码成功运行 SQL 语句并从数据库中获取数据:
$query = $this->db->table('users')
->select('*')
->where($this->table . '.auth_key', $password)
->where($this->table . '.email', $email)
->where($this->table . '.enabled', 1)
->get()->getRowArray();
但是,这与我在文档中看到的语法不同。如何将 $data 数组插入 MySQLi 数据库中的用户表??
谢谢,如果我需要澄清任何事情,请告诉我!
【问题讨论】:
-
我认为您的代码没有任何问题。您确定您已加载数据库并且已正确连接到它吗?
-
我已加载数据库并正确连接到它,我的代码的后半部分运行良好并从数据库返回有效结果。当我使用第一个 sn-p 中的代码将数据插入表中时,我收到一条错误消息,指出插入是“调用未定义的方法 CodeIgniter\Database\MySQLi\Connection::insert()”。
-
我很确定您使用的是某种 3rd 方工具而不是查询构建器,因为其中没有
table()函数 - 所以您的查询$this->db->table()..甚至无法与 Codeigniter 一起使用3.x - 我假设你使用 CI 4...,这是完全不同的事情,因为它甚至没有脱离 alpha 状态。(目前仍处于第 2 阶段的开发阶段) -
@Pecans 亲爱的你正在混合 CI 3 和 CI 4,你上面给出的链接是 CI 3,这里是 CI 4:bcit-ci.github.io/CodeIgniter4/database/index.html
-
你应该使用 $db = \Config\Database::connect(); $builder = $db->table('users'); $builder->insert($data);像这样插入记录
标签: php mysql codeigniter