Mysql使用Php foreach循环选择并插入到另一个表中
我已经创建了一个新的表(颜色),其中id和十六进制作为列,所有现有id与图片路径一起保存在pics表中,将进入带有许多十六进制值的新颜色表。我使用一个类从图片中提取突出的颜色作为十六进制值数组 这是迄今为止的代码:Mysql使用Php foreach循环选择并插入到另一个表中,php,mysql,Php,Mysql,我已经创建了一个新的表(颜色),其中id和十六进制作为列,所有现有id与图片路径一起保存在pics表中,将进入带有许多十六进制值的新颜色表。我使用一个类从图片中提取突出的颜色作为十六进制值数组 这是迄今为止的代码: $data = $conn->query('SELECT id,pic_path FROM pics WHERE pic_id = 1231'); while($row = $data->fetch()) { $image = new ColorsOfImage(
$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\u id']
时,你使用了$data['pic\u id']
当你想要的是$row['pic\u id']
时,你使用了$data['pic\u id']
当你想要的是$row['pic id'
时,你使用了$code>$data['pic id'
当您想要的是$row['pic_id']
时,只需一个查询即可完成,无需php,无需循环
INSERT INTO colours (pic_id,colour)
SELECT id,pic_path FROM pics
WHERE pic_id = 1231
完整详细信息:只需一个查询即可完成,无需php,无需循环
INSERT INTO colours (pic_id,colour)
SELECT id,pic_path FROM pics
WHERE pic_id = 1231
完整详细信息:只需一个查询即可完成,无需php,无需循环
INSERT INTO colours (pic_id,colour)
SELECT id,pic_path FROM pics
WHERE pic_id = 1231
完整详细信息:只需一个查询即可完成,无需php,无需循环
INSERT INTO colours (pic_id,colour)
SELECT id,pic_path FROM pics
WHERE pic_id = 1231
完整详细信息:Wow!那是愚蠢的疏忽!谢谢!那是愚蠢的疏忽!谢谢!那是愚蠢的疏忽!谢谢!那是愚蠢的疏忽!Thanks@Dagon请详细说明?@Dagon请详细说明?@Dagon请详细说明?@Dagon请详细说明?哦,我明白了,我只使用pic_id来测试,真的我会使用pic_id>1231之类的东西,这样行吗?我只知道一种方法,哦,我明白了,我只使用pic_id来测试,真的我会使用pic_id>1231之类的东西,这样行吗?我只知道一种方法来找出答案哦,我明白了,我只使用pic_id来测试,真的我会使用pic_id>1231这样的东西,行吗?我只知道一种方法来找出答案哦,我明白了,我只使用pic_id来测试,真的我会使用pic_id>1231这样的东西,行吗?我只知道一种方法来找出答案