我需要以某種方式檢查字段是否存在於數據庫中,如果存在,只需更新價格,如果不存在,則插入字段。我正在使用simplxml從xml解析數據到db。如果數據庫中存在字段,則更新價格else插入全部
這裏是我沒有if語句的代碼,只需插入兩個數據庫。
我需要從數據庫products
如果ident
存在檢查,因此,如果不存在,做所有的代碼了,如果存在只在數據庫更新price
products
foreach ($lib->product as $data) {
$manufacturer = (string) $data->manufacturer;
$ident = (string) $data->id;
$name = (string) $data->name;
$category = (string) $data->category;
$subcategory = (string) $data->subcategory;
$price = (int) ($data->price * 1.2 * 1.4 * 1.1);
$image = (string) $data->images->image[0];
$insert = $db->prepare('INSERT INTO products (ident, manufacturer,name,category,subcategory,price,image) VALUES (?, ?, ?, ?, ?, ?, ?)');
$insert->bind_param('sssssss', $ident, $manufacturer, $name, $category, $subcategory, $price, $image);
$insert->execute();
foreach($data->specifications->attribute_group as $group) {
$attribute_group = (string) $group->attributes()['name'];
foreach($group as $attr) {
$attribute = (string) $attr->attributes()['name'];
$value = (string) $attr->value;
$insert = $db->prepare('INSERT INTO spec (attr_group,attr_name, attr_value, product_id) VALUES (?, ?, ?, ?)');
$insert->bind_param('ssss', $attribute_group, $attribute, $value, $ident);
$insert->execute();
}
}
}
好了,這對錶「產品」工作,但我還有一個循環表「規範」,其中「的ident」不能是唯一的,因爲它是reapating。我需要以某種方式當在桌子'產品'鑑定重複,然後對'規格'表做任何事情 – gandrap 2014-09-01 08:36:10
是否有列將是唯一的組合?如果是這樣,您可以在2列或更多列上設置UNIQUE索引。 – 2014-09-01 08:38:12
更好地理解你的表格將有助於回答。你可以編輯你的問題或創建一個sqlfiddle.com並在這裏提供一個鏈接到它 – 2014-09-01 08:40:58