簡體   English   中英

導入 LOAD DATA INFILE 時將我的 php 變量連接到 csv 數據

[英]Concatenate my php variable to csv data when importing LOAD DATA INFILE

我需要將一些 csv 文件導入 mysql。

我最近發現有關 LOAD DATA INFILE 的信息,據我了解,我查看了手冊,將每一行 .csv 文件導入到數據庫中。

我想知道是否有一個選項可以將額外的值連接到 csv 文件包含的內容。

例如:我的表有 3 列。

MYTABLE(#name,#email,company_adrs);

csv 文件只有“姓名、電子郵件”的數據,我在 php 變量中有地址。

使用正常循環,我將按如下方式實現:

//open file
while (/* not end of file, read eachline*/)
{
  $current_line_of_csv_file; // contains: "John,john@john.com" without the 3rd column
  $myAddrsVar= mysqli_real_escape_string($db, $_POST['adrs']); //"44 company st" 
  $insert = $db->query("INSERT MYTABLE (name,email,company_adrs) VALUES ( $current_line_of_csv_file,'".$myAddrsVar."')");

}

使用這種方法,我必須遍歷 csv 的每一行並在每次迭代中進行查詢。

我想知道 LOAD DATA INFILE 是否有一種方法可以將我的數據連接到 csv 文件? 如果是這樣,我該如何實現?

提前致謝

鑒於您的情況,我建議使用 PHP all-in-all 並以這種方式將數據插入 MySQL。

https://www.php.net/manual/en/function.str-getcsv.php可以幫助您將 CSV 解析為數組。 將地址添加到數組中。 現在,您將在數組中擁有數據集。

使用此處所示的准備好的語句https://websitebeaver.com/prepared-statements-in-php-mysqli-to-prevent-sql-injection並一個接一個地插入數據。

使用事務以便插入所有數據或不插入任何數據。 請參閱如何在 mysqli 中啟動和結束事務? .

我會避免使用 LOAD DATA INLINE 因為數據量不是那么大。 如果你真的想使用它並添加另一列,你可以使用SET語句。 這里有一個例子: Add extra column of data when using LOAD DATA LOCAL INFILE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM