我正在尝试使用CodeIgniter框架向数据库添加数据。 DB方法返回true,但我在数据库中没有新数据。 有我的控制器:
class Facebook extends CI_Controller
{
public function index()
{
if($this->input->is_ajax_request())
{
$this->load->model('user_model','user');
$data = array();
$data['u_ip'] = $this->input->ip_address();
$this->user->add_user($data);
}
}
}
还有我的模特:
class User_model extends CI_Model
{
public function add_user($data)
{
$this->db->insert('users',$data);
//$res = $this->db->insert('users',$data); (true)
}
}
更新 有我的数据库: id_users(int 255)AI,key u_ip(varchar 100)
答案 0 :(得分:1)
另外,请确保您的$data
看起来像这样:
$data = array(
"u_ip" => $this->input->ip_address(),
);
$this->insert("data", $data);
或者如果来自其他文件,请执行以下操作:
$this->insert("users", $data[0];)
请记住加载数据库:
$this->load->database();
这将在add_user($data)
范围内,例如
class User_model extends CI_Model
{
public function add_user($data)
{
$this->load->database();
$this->db->insert('users',$data);
//$res = $this->db->insert('users',$data); (true)
}
}
但是,您可以自动拥有这些内容,如果您转到autoload.php
,则可以执行此操作:
$autoload['libraries'] = array('database');
对于你的模特:
$autoload['model'] = array('logic');
答案 1 :(得分:0)
您没有在查询中提及任何列名。请尝试以下代码 -
class User_model extends CI_Model{
public $db;
public function __construct(){
parent::__construct();
$this->db = $this->load->database('default',true);
}
public function add($data)
{
$data = array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
);
$this->db->insert('mytable', $data);
}
答案 2 :(得分:0)
$ this-> input-> is_ajax_request()
这是通过表格发布的吗?如果是这样的话,它应该是$ this-> input-> post('is_ajax_request'); is_ajax_request是您发布的输入的名称,
如果它在控制器中的另一个功能你需要做$ this-> is_ajax_request();