Php Codeigniter查询未插入
数据从前端发送,如下所示:Php Codeigniter查询未插入,php,mysql,codeigniter,codeigniter-2,Php,Mysql,Codeigniter,Codeigniter 2,数据从前端发送,如下所示: var data = { 'user_id':userid, 'qid':array[qnum].qid, 'user_ans':userAnswers[qnum].answer, 'user_time':userTime, 'exerciseid':exid, 'point_s
var data = {
'user_id':userid,
'qid':array[qnum].qid,
'user_ans':userAnswers[qnum].answer,
'user_time':userTime,
'exerciseid':exid,
'point_scored':points
};
$.post('<?php echo base_url()?>main/update_user_score',
{ myData : data },
function(result){} );
在我的问题\u模型/更新\u用户\u尝试中:
error_log("data in model BEFORE INSERT:" . json_encode($data));
$this->db->insert('user_attempt', $data);
error_log("data in model AFTER INSERT: ");
问题是,数据到达(至少在我看来)模型相当好。以下是日志条目:
[23-Apr-2012 16:04:47] data in model BEFORE INSERT:{"user_id":"5","qid":"3","user_ans":"d","user_time":"3","exerciseid":"cr1","point_scored":"35"}
但是没有“插入后”日志条目。插入本身不会发生,插入后的日志条目也不会发生
我能从数据库里读得很好。因此,我在phpmyadmin中检查了“config/database.php”中用户的用户权限,该用户拥有所有权限,包括INSERT
所以有两个问题:
错误报告(E_ALL)代码>
尝试放置$this->db->_error_message();数据库插入后 像这样
error_log("data in model BEFORE INSERT:" . json_encode($data));
$this->db->insert('user_attempt', $data);
echo $this->db->_error_message();
error_log("data in model AFTER INSERT: ");
不要忘记在insert语句之后使用
$this->db->last\u query()
,查看insert语句的外观。将该insert语句复制并粘贴到sql客户机中,以查看查询是否真正独立工作。尝试添加
ini_set("display_errors", "1");
在插入之前
var_dump($data); die();
看清楚你经过的是什么。然后检查是否正确形成了镶块状态。您是否遗漏了这一点
$post_data['user_id']
相反,您使用的是不带引号的这句话在哪里回响?因为这是一个ajax调用,所以我无法在屏幕上看到数据。我可以将它发送到某个日志文件吗?使用firebug或类似的插件来查看ajax调用的响应。它将准确地显示脚本输出的内容。这是一个愚蠢的错误。发现它失败,出现外键错误。我不知道如何检查Ajax响应。现在我知道了。非常感谢你!在我向模型中添加错误报告(E_ALL)之后,就在插入之前,我仍然没有看到任何更改/新的日志条目。我正在查看xampp/apache/logs/error.log和xampp/php/logs/php\u error\u log。我应该找别的地方吗?打印一个空字符串。这是否意味着查询没有形成?我最初放了引号,并删除了它们,因为我非常沮丧,我会尝试任何东西。后来意识到查询没有通过外键约束。我之前不知道如何检查。现在我知道了!很抱歉给您添麻烦,非常感谢!
$post_data['user_id']