gpt4 book ai didi

php - 从csv导入内容到mysql数据库

转载 作者:行者123 更新时间:2023-12-02 22:35:19 26 4
gpt4 key购买 nike

有一个名为:example 的 mysql 数据库,它有一个名为:products 的表,它有字段:products_modelproducts_image。模型字段是唯一的。

现在我有一个名为 data.csv 的 csv 文件。其中有两列 products_model 和 products_image。我使用以下代码。但它不会将数据导入数据库。我的代码有什么问题?

    $fp = fopen("data.csv","r");
$length = 4096; //have to be optional length
$fildDelineate = ',' ;//or "|" declare what you need
$dbhost="localhost";
$dbname="zencartone";
$dbuser="root";
$dbpass="";
$link = mysql_connect($dbhost,$dbuser,$dbpass);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db($dbname);

$databasetable = 'products';

$counter = 1;//to omission first row if it is table headers

while($line = fgetcsv($fp,$length,$fildDelineate)){
foreach($line as $key=>$value){
//for example insert in 3 column
$importSQL = "insert into $databasetable (products_model, products_image) values('$line[0]','$line[1]')";
mysql_query($importSQL) or die(mysql_error());
}
$counter++;
}
fclose($fp);

数据.csv:

有两列:

products_model  products_image
MG200MMS dress/201247561673.jpg
MG400-32MB dress/2012471141673.jpg
MSIMPRO dress/201247741673.jpg
DVD-RPMK dress/2012471831673.jpg
DVD-BLDRNDC dress/2012474221673.jpg
DVD-MATR dress/201112132056773.jpg

最佳答案

你的问题在循环中:

while(!fopen($fp)){
if(!$line = fgetcsv($fp,$length,$fildDelineate,'')&& $counter){
continue;
}
foreach($line as $key=>$value){

不正确。您的文件已经打开(在第一行代码中)。在循环中你需要阅读,而不是重新打开。你的循环应该是这样的:

while($line = fgetcsv($fp, 0, "\t")){
foreach($line as $key=>$value){
...
}
}

编辑:由于您的文件似乎是 TSV(制表符分隔值),我更新了上面的代码以在读取数据时使用制表符字符作为分隔符。

关于php - 从csv导入内容到mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com