我有两个表:
表IMAGES
id_images | dir_image | post_id
1 image1.jpg 1
2 image2.jpg 1
3 image3.jpg 1
4 image4.jpg 1
5 image5.jpg 2
6 image6.jpg 2
7 image7.jpg 2
8 image8.jpg 2
表POSTS
id_post | slug | title
1 title_post Title Post
2 title_post_2 Title Post 2
PHP
public function update($idsimages, $dir_images, $idPost, $title, $slug)
{
try {
$stmt = $this->db->prepare("UPDATE posts SET
title = :title,
slug = :slug,
WHERE id_post=:id_post");
$stmt->bindParam(":id_post",$idPost);
$stmt->bindParam(":title",$title);
$stmt->bindParam(":slug",$slug);
$stmt->execute();
$stmt = $this->db->prepare("UPDATE images SET
dir_images = :dir_images
WHERE id_images = :id_images");
foreach ($idsimages as $idsimage) {
foreach ($dir_images as $item){
$stmt->bindParam(":id_images", $idsimage);
$stmt->bindParam(":dir_images", $item);
} //end foreach dir_images
$stmt->execute();
} // end foreach idsimages
return true;
}
catch(PDOException $e) {
echo $e->getMessage();
return false;
}
}
变量$idsimages
是ID的数组$id_images
列
变量$dir_images
是应根据数组$idsimages
的id更新的url数组
用上面的php代码正确地更新了post表的标题,但没有更新表的图像
打印
print_r($idsimages)
Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 8 )
print_r($dir_images)
Array ( [0] => uploads/images/image5.jpg [1] => uploads/images/image6.jpg [2] => uploads/images/image7.jpg [3] => uploads/images/image8.jpg)
如果我在函数中插入回波:
$stmt->bindParam(":id_images", $idsimage);
echo $idsimage;
$stmt->bindParam(":dir_images", $item);
echo $item;
返回:
5 image5.PNG 5 image6.jpg 5 image6.jpg 5 image6.jpg
6 image5.PNG 6 image6.jpg 6 image6.jpg 6 image6.jpg
7 image5.PNG 7 image6.jpg 7 image6.jpg 7 image6.jpg
8 image5.PNG 8 image6.jpg 8 image6.jpg 8 image6.jpg
您需要这样的东西:
$stmt = $this->db->prepare("UPDATE images SET
dir_images = :dir_images
WHERE id_images = :id_images");
foreach ($idsimages as $key => $idsimage) {
$stmt->bindParam(":id_images", $idsimage);
$stmt->bindParam(":dir_images", $dir_images[$key]);
$stmt->execute();
} // end foreach idsimages