我試圖解析產品提要中的一些CSV文件。我使用下面的代碼從CSV中獲取數據,並逐行處理以插入到MySQL數據庫中。出於某種原因,每隔一段時間,addslashes函數似乎都會跳過轉義序列。我在這裏做錯了什麼?PHP的CSV解析問題MySQL的轉義字符串
while (($data = fgetcsv($fh, 2000, ",")) !== FALSE)
{
$num = count($data);
$nl = 0;
for ($c=0; $c < $num; $c++)
{
$nl++;
if ($c >= 0)
{
if ($nl == 1)
{
$Name = addslashes($data[$c]);
}
if ($nl == 2)
{
$URL = $data[$c];
}
if ($nl == 3)
{
$CatalogName = addslashes($data[$c]);
}
if ($nl == 4)
{
$LastUpdated = $data[$c];
}
}
}
if ($headerRow > 40)
{
$sql = "INSERT INTO table (name,url,catname,updated) VALUES ('$Name','$URL','$CatalogName','$LastUpdated')";
mysqli_query($connection3,$sql) or die("Can't execute query I001.);
}
}
要麼使用參數化查詢,要麼使用'mysqli_real_escape_string' – Barmar
如果您使用的是MySQLi,爲什麼要將值注入SQL查詢中?使用預處理語句/綁定變量 –
我也不明白你爲什麼使用'for'循環。只要執行'$ Name = addslashes($ data [1]); $ URL = $ data [2]; 「 – Barmar