我正在嘗試爲從cs文件加載一些值的cron作業構建腳本。此CSV文件有2個字段加載CSV值,然後在mysql數據庫中搜索匹配
product_id
price
該腳本將從CSV中加載值,然後在mysql表中搜索product_id匹配項。如果找到,它將使用CSV中的相應價格更新表格中特定匹配的product_id的價格。
到目前爲止我已經到了下面的代碼,但我被困在需要比較CSV數組值和mysql數組值的部分。
<?php
// DB part
$con = mysqli_connect('localhost','user','pass','db');
if (!$con)
{
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,"products");
$sql="SELECT product_id, price, FROM products";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_array($result);
// CSV part
$file_handle = fopen("prices.csv", "r");
while (!feof($file_handle)) {
$line_of_text = fgetcsv($file_handle, 1024);
$code = str_replace(' ', '', $line_of_text[0]); //
$price = str_replace(' ', '', $line_of_text[1]); //
if (in_array($code, str_replace(' ', '', $row)))
{
echo "Match found";
print $code . " - " . $price . "<br />";
}
else
{
echo "Match not found";
print $code . " - " . $price . "<br />";
}
}
fclose($file_handle);
mysqli_close($con);
?>
發現[LOAD DATA INFILE(http://dev.mysql.com/doc/refman/5.1/en/load-data.html) –
我確實已經閱讀過這個問題,但問題是創建CSV文件的用戶並不像數據庫中那樣完全插入product_id,有時候只是其中的一部分,並且因爲可以在數據庫中找到多個匹配項,所以每個cotaining部分那product_id和我需要對這些重複項和那些未找到的項進行report.txt並將它們通過電子郵件發回給用戶,以便他可以重新檢查product_ids並更新CSV。 –
這就是爲什麼我想檢查表中的值,如果只有一個被發現,更新價格,如果發現多個不更新,並通過電子郵件報告和未發現的報告,報告他們太。這將作爲每週的臨時工作。 –