将数据插入数据库codeigniter3.x

0lvr5msh  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(392)

我正在尝试使用codeigniter3.x将数据插入mysqli表。
出于某种原因,codeigniter query builder文档中定义的数据库方法似乎都不适合我。
使用

$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);

给出错误:调用未定义的方法“insert”。这是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数据库的users表中??
谢谢,如果我需要澄清什么,请告诉我!

7cjasjjr

7cjasjjr1#

使用insert\u string代替insert可能会解决您的问题,

$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_string('users', $data);
ldxq2e6h

ldxq2e6h2#

似乎你传递了错误的日期格式,mysql的日期格式应该是'yyyy-mm-dd hh:mm:ss,更新你的代码如下

$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'
);
$this->db->insert('users', $data);
return ($this->db->trans_status()) ? $this->db->insert_id() : false;

确保正在加载数据库 $this->load->database();__construct &你呢 created_at & updated_at mysql列应该是 DATETIME

r8uurelv

r8uurelv3#

我终于用了:

$sql = sprintf("INSERT INTO users (created_at, updated_at, first_name, last_name, email, auth_key, enabled, deleted) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', %d, %d)", $data['created_at'], $data['updated_at'], $data['first_name'], $data['last_name'], $data['email'], $data['auth_key'], $data['enabled'], $data['deleted']);

$this->db->query($sql);

相关问题