[英]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.