gpt4 book ai didi

php - mysql 和 codeigniter 的奇怪插入行为

转载 作者:行者123 更新时间:2023-11-29 15:02:18 26 4
gpt4 key购买 nike

我有一个相当简单的插入语句

<...>
if (!empty($attributes)) {
$sql = 'INSERT INTO `part_attrs` (`part_id`, `attr`, `type`, `list_order`) VALUES (?, ?, ?, ?)';
foreach($attributes as $key => $attribute) {
$this->db->query($sql, array($partid, $attribute[0], $attribute[1], $key));
$attrid = $this->db->insert_id();
echo $attrid.'<br />';

if (strlen($attribute[2]) > 0) {
$values = explode(',', $attribute[2]);
$sql = 'INSERT INTO `attr_values` (`attr_id`, `field_values`) VALUES (?, ?)';
foreach ($values as $value) {
$this->db->query($sql, array($attrid, trim($value)));
}
}
}
}
<...>

奇怪的是只插入了一两行。我将回显行放入以查看每次插入返回的行 ID,因为我没有收到任何错误。例如,如果我插入三个项目,它将返回类似 18、124、128 的内容。其中 18 id 是下一个预期 id,因此该行将被插入,而其余行则不会。有什么想法可能是错误的吗?

最佳答案

您正在更改第二个 if 语句中 $sql 的值。 124 和 128 是 attr_values 表中的属性。考虑在 if 语句中使用另一个变量名称,或者将第一个赋值移至 foreach 循环内的 $sql(将其向下移动一行) .

关于php - mysql 和 codeigniter 的奇怪插入行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2849773/

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