在我的代码点火器(PHP)应用程序中,我使用以下查询插入多行:

INSERT INTO attribute_data (attribute_ID,product_ID,attribute_value) VALUES (2,3,123),(2,3,543)

两行的名为“attribute_value”的列都设置为0。
但是,当我将查询直接粘贴到phpMyAdmin时,它会用给定的数字(在我的示例中是123和543)设置列“attribute_value”。所以,我猜这个查询没有问题。但请纠正我。
可能不是很有帮助,但这里是我的代码点火器代码:
$sql = "INSERT INTO attribute_data (attribute_ID,product_ID,attribute_value) VALUES (2,3,123),(2,3,534)";
$this->db->query($sql);

关于我所看到的一些信息:
我已经试过用引号了,虽然它是一个整数。
“attribute\u value”列不是主键
更新
我已经启用了分析。分析输出中的查询相同。
更新2
我尝试使用insert_batch()方法,结果相同。仍在使用0而不是给定值添加记录。
$this->db->insert_batch('attribute_data',$insert_data);

最佳答案

谢谢你的帮助。对我的代码和查询的确认已经足够让我开始考虑缓存了。
我先签出了MySQL的缓存,但这是开箱即用的。代码点火器缓存导致了这里的问题。当然不是最后的解决办法,但是下面的方法帮了我很多忙。

$this->db->cache_delete_all();

在插入数据之前删除缓存后,将插入正确的值。因此,列属性值以某种方式在缓存中。现在,我的任务继续使它在打开代码点火器缓存的情况下工作。
再次感谢你,摇滚!

关于php - 插入查询直接在MySQL中工作,而不是通过代码点火器,它传递一个空值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57845762/

10-12 12:43
查看更多