[英]Mysql Select and Insert into another table with Php foreach loop
我创建了一个新表(颜色),该表具有id和hex作为列,所有现有id与图片的路径一起保存在pics表中,它将进入具有许多hex值的新color表中。 我正在使用一个类从十六进制值数组中提取图片中的突出颜色。
到目前为止,这是代码:
$data = $conn->query('SELECT id,pic_path FROM pics WHERE pic_id = 1231');
while($row = $data->fetch()) {
$image = new ColorsOfImage('images/'.$data['pic_path']);
$colors = $image->getProminentColors();
foreach($colors as $key => $val)
{
$sql = "INSERT INTO colours (pic_id,colour) VALUES (:pic_id,:colour)";
$q = $conn->prepare($sql);
$q->execute(array(':pic_id'=>$data['pic_id'],':colour'=>$val));
}
}
但是我得到这个错误:
Fatal error: Cannot use object of type PDOStatement as array
填充后,它应该是这样的:
当您想要的是$row['pic_id']
时,您使用了$data['pic_id']
$row['pic_id']
。
这可以通过一个查询来完成,不需要php,不需要循环
INSERT INTO colours (pic_id,colour)
SELECT id,pic_path FROM pics
WHERE pic_id = 1231
完整详细信息: https : //dev.mysql.com/doc/refman/5.1/en/insert-select.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.