相关代码:
$sql = "INSERT INTO rel_attivita_corsi(id_attivita,id_corso) VALUES";
foreach($elements as $element) {
$sql .= "('".$element."','1'),";
}
$sql = substr($sql,0,-1);
if (!$this->db->query($sql)) {
echo "FALSE";
}
else {
echo "TRUE";
}
echo $this->db->last_query();
表结构:
rel_attivita_corsi
-----------------------------
ID (int) primary
id_attivita (int)
id_corso (int)
我正在使用codeigniter,如您所见,最后一个原始返回正确的查询,但数据库中的表仍然为空......运行phpmyadmin中返回的查询一切正常。
有任何想法吗?
更新 1 - 使用活动记录:
$dati = array();
foreach($elements as $element){
$dati[] = array('id_attivita' => $element, 'id_corso' => 1);
}
if (!$this->db->insert_batch("rel_attivita_corsi",$dati)) {
echo "FALSE";
}
else {
echo "TRUE";
}
echo $this->db->last_query();
没有成功,最后一个查询打印正确但没有插入发生
更新 2 - 使用活动记录而不使用 foreach:
$this->db->insert_batch("rel_attivita_corsi",array(array('id_attivita' => 7,'id_corso' => 1),array('id_attivita' => 9,'id_corso' => 1)));
没有成功……
我现在用真实替换了假值,$elements
数组是:
Array
(
[0] => 7
[1] => 9
)
UPDATE 3 问题解决了......在删除每条记录插入表的代码之后还有另一个查询,所以表总是空的
如果您对代码流程有疑问,请尝试使用分析