我有以下代码在数据库
中的特定列上存储数组内容(图像URL)// store the values returned by getItemImageUrls() in the sqlite DB
foreach ($items as $item) {
$images = $item-> getItemImageUrls();
$db->table('images')->save(array(
'items_id' => $item->getId(), //Item class filed
'link' =>$images // store Urls into link column of images table
));
}
getItemImages()
是一个从html字符串中检索图像网址的函数,如下所示:
public function getItemImageUrls()
{
$dom = new domDocument;
$dom->loadHTML($this->content);
$dom->preserveWhiteSpace = false;
$url = array();
$images = $dom->getElementsByTagName('img');
foreach($images as $img)
{
$url[] = $img->getAttribute('src');
}
return ($url);
}
我的问题是我将Array转换为字符串转换错误。我怎样才能解决这个问题? 感谢您的帮助
答案 0 :(得分:1)
问题是您的数据库列不接受数组但只接受字符串。所以我们需要使用implode()
函数将图像数组转换为逗号分隔的字符串。
更新了代码以分别保存每一行
// store the values returned by getItemImageUrls() in the sqlite DB
foreach ($items as $item) {
$images = $item-> getItemImageUrls();
//converting the array into string (update : you don't need it )
//$images = implode(",", $images);
//update : for saving each image in single row
foreach($images as $image) {
$db->table('images')->save(array(
'items_id' => $item->getId(), //Item class filed
'link' =>$image // store Urls into link column of images table
));
}
}
您可以在需要时使用explode函数将字符串转换回数组。