我想尽可能地将此查询作为通用,我不想进入具体细节,而是学习一种普遍接受的方法来解决这个问题。
我有一些数据,结构如下:
$data => Array
(
[0] => Array
(
[field_index] => 2
[comment] => damage of object 1
[image] => Array
(
[url] => /path/to/file/my_image.jpg
[fname] => my_image.jpg
[fsize] => 77005
)
),
[1] ...
[2] ...
)
我试图在两个表files
和records
中插入它,图像数据存储在第一个表格中,而参考图像ID的记录数据存储在第二个表格中。
我能做到的唯一方法是遍历所有项目并逐个运行INSERT
个查询,如下所示:
foreach($data as $item){
// INSERT IMAGE TO FILES TABLE
// GET INSERT_ID
// INSERT ITEM DATA TO RECORDS (USE INSERT_ID OF IMAGE AS REFERENCE)
}
我的问题是:
a)可以一次一个地运行插入查询而不是在单个查询中插入多行吗? b)是否有另一种方法可以实现我所追求的目标 - 在两个表格中引用数据。
我想单独保存文件数据,因为:
$data
可能有修订版,其中一些记录可能会更改但不是全部,并且我不想要冗余图像记录答案 0 :(得分:0)
您有两种选择 -
您还可以使用单个插入命令在表中插入多行 - 这是插入大量记录的快捷方式。
关于ORM的一个注意事项 - 我所处理的很多内容都没有特别好地批量插入数千或数万条记录,因此SQL可能是您最好的选择。