【发布时间】:2016-02-17 19:43:31
【问题描述】:
我喜欢编写一个 csv 导入/更新到我的 Mysql 数据库,但它不起作用。我没有收到任何错误消息。
谁能帮我找出错误或我的脚本有什么问题。
// set local variables
$connect = mysql_connect("localhost","root","") or die('Could not connect: ' . mysql_error());
$handle = fopen("imptest.csv", "r");
// connect to mysql and select database or exit
mysql_select_db("shoptest1", $connect);
while($data = fgetcsv($handle, 30000, ';')) //Jede Zeile durchgehen
{
$Product_ID=$data[0];
$field=$data[1];
$query = 'SELECT Product_ID FROM testprod';
if (!$result = mysql_query($query)) {
continue;
} if ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
// entry exists update
$query = "UPDATE ps_product_lang SET custom_field ='$field' WHERE id_product = '$Product_ID'";
mysql_query($query);
if (mysql_affected_rows() <= 0) {
echo "kein update";
// no rows where affected by update query
}
} else {
echo "kein eintrag";
// entry doesn't exist continue or insert...
}
mysql_free_result($result);
}
fclose($handle);
mysql_close($connect);
?>
【问题讨论】:
-
停止使用已弃用的
mysql_*API。使用mysqli_或PDO。 -
您从不检查错误,因此您不会收到错误消息
-
您正在选择
testprod中的所有行,并且continue出错,或者,如果该表包含至少1 个产品ID,则更新另一个表ps_product_lang中可能或可能的行不存在。