【发布时间】:2021-08-10 12:37:47
【问题描述】:
我正在尝试使用 php 更新我的数据库。不幸的是,这个过程太长了。我无法使用数据加载 infile,因为我的主机不允许。
我的数据库行(id、sku、stock、image_1、image_2、image_3) 我的 csv 文件(sku、库存)
我尝试仅将 csv 文件中的库存更新到我的数据库中。
<?php
$connect = mysqli_connect("localhost", "databsename", "PAssword", "databsename");
$handle = fopen("new_stock.csv", "r");
while($data = fgetcsv($handle))
{
$sku = mysqli_real_escape_string($connect, $data[0]);
$stock = mysqli_real_escape_string($connect, $data[1]);
$query = "UPDATE Products SET stock='$stock' WHERE sku='$sku'";
mysqli_query($connect, $query);
}
fclose($handle);
echo 'finish';
?>
【问题讨论】:
-
(可能的)旁注:忘记
*escape_string*()并且不要使用字符串插值或连接将值获取到 SQL 查询中。这很容易出错,并且可能使(仍然)您的程序容易受到 SQL 注入攻击。使用参数化查询。见"How to include a PHP variable inside a MySQL statement" 和"How can I prevent SQL injection in PHP?"。 -
is far too long表示你达到了执行时间限制还是什么? -
不,我的意思是更新所有股票需要很长时间
-
恕我直言,我不同意因缺乏细节而关闭此问题的决定。它非常清楚地提出了提问者的问题。
标签: php mysql query-optimization bulk-load bulkupdate