gpt4 book ai didi

mysql - codeigniter INSERT 查询正确并执行但未执行插入

转载 作者:行者123 更新时间:2023-11-29 01:22:19 26 4
gpt4 key购买 nike

相关代码:

$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
)

更新 3问题解决了...在删除插入表中的每条记录的代码之后还有另一个查询,所以表总是空的

如果您怀疑代码的流程,请尝试使用 profiling

最佳答案

我认为你循环错了:

$sql .= "('".$element."','1'),";

这会产生 (value,1), (value, 1) , (value, 1)

当你需要的时候

(value,value,value)

ma che te lo dico a fare poi :P

所以你的查询是:

INSERT INTO table(ID,id_activity,id_cont) VALUES (somenthin,1), (somenthing,1) etc ..

而你需要

INSERT INTO table(ID,id_activity,id_cont) VALUES (value,value,value) ;

你可以试试这个:

$sql = "INSERT INTO table(id_activity,id_cont) VALUES (".implode(',',$elements)."); ";

if (!$this->db->query($sql)) {
echo "FALSE";
}
else {
echo "TRUE";
}
echo $this->db->last_query();

如果您正在尝试进行 INSERT BATCH,请检查它所说的 Codeigniter 文档:

 $data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);

$this->db->insert_batch('mytable', $data);

// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')

关于mysql - codeigniter INSERT 查询正确并执行但未执行插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16647112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com