php - 当我登录到另一个表CODEIGNITER时如何插入外键ID

标签 php mysql codeigniter session

我想将我的 user_ID 插入到基于用户登录的冒险表中。但问题是我从未从用户登录中获取值,该值始终为 NULL

这是错误页面:

Error Number: 1048

Column 'user_id' cannot be null

INSERT INTO adventure (name, category, place, state, user_id) VALUES ('asd', 'gunung', 'asd', 'asd', NULL)

Filename: C:/xampp/htdocs/login-ci/system/database/DB_driver.php

Line Number: 691

这是我的模型

public function getUserId()
    {
        return $this->session->users['user_id'];
    }

这是我的 Controller

public function addTrip(){
        $this->load->model('userModel');
        $user_id = $this->session->users['user_id'];

        $newTrip = ['name' => $this->input->post('name'),
                    'category' => $this->input->post('category'),
                    'place' => $this->input->post('place'),
                    'state' => $this->input->post('state'),
                    'user_id' => $this->input->$user_id
                    ];


        $this->db->insert('adventure',$newTrip);
        // $this->db->insert('adventure',$data);

        redirect('userController/profile');
    }

请有人告诉我,如果我在代码中遗漏了某些内容,非常感谢

最佳答案

您在创建插入数组时遇到问题。将您的代码更改为:

$user_id = $this->session->users['user_id'];
$newTrip = ['name' => $this->input->post('name'),
                    'category' => $this->input->post('category'),
                    'place' => $this->input->post('place'),
                    'state' => $this->input->post('state'),
                    'user_id' => $user_id // You already have $user_id from session
                    ];

关于php - 当我登录到另一个表CODEIGNITER时如何插入外键ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46439415/

相关文章:

php - 如何使用 PHP 将动态文本框保存到数据库

php - 为什么这个简单的查询不起作用?

php - ORM 的最佳表结构是什么

php - C 相当于 PHP `date(' YmdHis')`

php - 查询中的时间戳问题

php - “rpath”在某些 Linux 系统中不起作用。

javascript - 存储和解析 CSS/JS

php - fatal error : Uncaught exception 'mysqli_sql_exception' with message 'No index used in query/prepared statement'

php - SQL 中的插入查询花费了很多时间

codeigniter - 为什么使用 "stick"窗口登录时,登录 session "ionic serve"不起作用,但当我将浏览器指向 www 文件夹时,登录 session 0x104567910 可以工作?