Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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
Php 在null上调用成员函数insert()。共点火器_Php_Mysql_Database_Codeigniter - Fatal编程技术网

Php 在null上调用成员函数insert()。共点火器

Php 在null上调用成员函数insert()。共点火器,php,mysql,database,codeigniter,Php,Mysql,Database,Codeigniter,大家好,我在为我的CI 3网站提交表格时遇到以下错误: 致命错误:调用null上的成员函数insert() 此错误发生在第20行,即: $query = $this->db->insert('temp_subscribed_users', $data); 以下是完整的功能: public function add_temp_user($key) { echo "hello"; $data = array( 'TEMP_EMAIL' =>

大家好,我在为我的CI 3网站提交表格时遇到以下错误:

致命错误:调用null上的成员函数insert()

此错误发生在第20行,即:

$query =  $this->db->insert('temp_subscribed_users', $data);
以下是完整的功能:

public function add_temp_user($key)
{
    echo "hello";

    $data = array(


        'TEMP_EMAIL' => $this->input->post('email'),

        'TEMP_KEY' => $key

    );

    echo var_dump($data);

    $query =  $this->db->insert('temp_subscribed_users', $data);

    if($query)
    {

        return true;  
    }else{

        return false; 

    }
}
我不知道null是什么意思。表名是正确的,我进行了var_转储以确认数组正在填充。我还通过回显“hello”来确保进入该函数,并将其输出到页面上

感谢您的帮助,谢谢


附加信息:使用XAMPP localhost运行。

首先,您没有使用codeigniter的MVC模型。控制器用于函数,模型用于数据库连接

首先自动加载数据库,如果不只是将其放入代码中。但这里是它应该是什么样子

控制器功能

public function add_temp_user($key)
{
    echo "hello";
    $this->load->model('MY_MODEL');
    //If you're not autoloading db include the next line
    //$this->load->library('database');
    $data = array(
        'TEMP_EMAIL' => $this->input->post('email'),
        'TEMP_KEY' => $key
    );

    echo var_dump($data);
    //If you confirmed the data var dumped

    $success = $this->MY_MODEL->insert_to_db($data);

    if($success == true)
    {
        //Do something
    }
    else
    {
        //Do something
    }
}
型号

public function insert_to_db($data)
{
  $query =  $this->db->insert('temp_subscribed_users', $data);
  //
  if($query)
  {
    return true;  
  }
  else
  {
    return false; 
  }
}

确保TEMP_EMAIL和TEMP_KEY是数据库中的列,TEMP_subscribed_users是您的表名

首先,您没有使用codeigniter的MVC模型。控制器用于函数,模型用于数据库连接

首先自动加载数据库,如果不只是将其放入代码中。但这里是它应该是什么样子

控制器功能

public function add_temp_user($key)
{
    echo "hello";
    $this->load->model('MY_MODEL');
    //If you're not autoloading db include the next line
    //$this->load->library('database');
    $data = array(
        'TEMP_EMAIL' => $this->input->post('email'),
        'TEMP_KEY' => $key
    );

    echo var_dump($data);
    //If you confirmed the data var dumped

    $success = $this->MY_MODEL->insert_to_db($data);

    if($success == true)
    {
        //Do something
    }
    else
    {
        //Do something
    }
}
型号

public function insert_to_db($data)
{
  $query =  $this->db->insert('temp_subscribed_users', $data);
  //
  if($query)
  {
    return true;  
  }
  else
  {
    return false; 
  }
}

确保TEMP\u EMAIL和TEMP\u KEY是数据库中的列,TEMP\u subscribed\u users是您的表名

加载数据库,然后调用insert函数。Codeigniter不会因性能问题自动加载数据库

$this->load->database();
$query =  $this->db->insert('temp_subscribed_users', $data);

加载数据库,然后调用insert函数。Codeigniter不会因性能问题自动加载数据库

$this->load->database();
$query =  $this->db->insert('temp_subscribed_users', $data);

尝试通过进入config文件夹中的autoload.php并在库的数组中添加数据库来解决问题,如下所示:
$autoload['libraries']=array('database')

尝试通过进入config文件夹中的autoload.php并在库的数组上添加数据库来解决问题,如下所示:
$autoload['libraries']=array('database')

  • 请检查是否创建了对象
  • 检查对象在该类中是否可用
  • 请检查是否创建了对象
  • 检查对象在该类中是否可用

  • 在加载“db”之前是否加载?@Deep是的,我已将其自动加载到数据库库。在运行插入之前,您还可以手动加载库。您可以使用
    $this->load->library('database')在加载“db”之前加载你?@Deep是的,我有它自动加载数据库库。你也可以在运行insert之前手动加载库。您可以使用
    $this->load->library('database')