我有两个带ID和说明的数组。
在数据库中,我有相同的ID,但没有说明。
如何将每个描述表单数组添加到当前ID?
foreach($product->find('.block-d .btns-d .btn-buy') as $productId) {
if(!empty($productId)) {
dataId = $productId->{'data-offerid'};
}
}
foreach($product->find('.description div div p') as $description) {
if(!empty($description)) {
$query = "UPDATE snowcore_parser_products SET description = " . $description . " WHERE remote_id = " . $dataId . " ';";
$sql = mysqli_query($db, $query);
}
}
如果我尝试使用没有数组的简单值,它就可以工作。例如
$query = "UPDATE snowcore_parser_products SET description = '1';";
答案 0 :(得分:1)
只需使用foreach就可以了,试试这个:
$ids = [1,2,3];
$descriptions = [1,2,3];
foreach($ids as $key => $id) {
$query = "UPDATE snowcore_parser_products SET description = " . $descriptions[$key] . " WHERE remote_id = " . $id . " ';";
$sql = mysqli_query($db, $query);
}
答案 1 :(得分:1)
我认为您的查询格式不正确。它没有引用说明,以表明它是一个字符串。例如,如果描述的值是" stackoverflow"并且ID为" 1",您的查询将如下所示:
UPDATE snowcore_parser_products SET description = stackoverflow WHERE remote_id = 1 ';
因此,为了解决这个问题,最后一个引用应该消失,描述的值应该用引号括起来。像这样:
$query = "UPDATE snowcore_parser_products SET description = '" . $description . "' WHERE remote_id = " . $dataId . ";
另外,我建议您阅读this article on SQL injection,因为此查询并非安全。