csv导入mysql后第一列没有值,csv文件转换成sql导入到数据库,没有数据为何?

该博客讲述了在尝试将CSV文件上传并转换为SQL的过程中遇到的问题。首先,文件被上传到指定文件夹,然后读取并进行编码转换。在处理过程中,如果行数不足14或读取出现错误,则跳过。主要问题在于转换后没有数据能够成功插入到数据库中。作者寻求帮助以找出转换失败的原因。
摘要由CSDN通过智能技术生成

执行的顺序:

1)文件浏览框(选择文件使用)

选择好文件后

点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下

2)读取这个文件夹下的csv的文件,转换成sql

3)然后再insert到数据库里

但是中间的转换似乎除了问题,没有数据

请各位帮忙看看是不是哪里出了问题

↓↓↓

if ($_FILES['csv_file_road']['tmp_name'] != '') {

$all_name= $_FILES['csv_file_road']['tmp_name'];

$file_name = $ADDRESS_CSV_COMMON_USER.'.csv';

if(!copy($all_name,CSVWAY.$file_name)){

$messageStack->add("文件上传失败", 'error');

return;

}

}

$handle = fopen (CSVWAY.$file_name,"r");

while ($data = fgetcsv ($handle, 5000, ",")) {

$row_num = $row_num+1;//now read csv row-num

$error_info = "";

if($row_num == 1){

continue;

}

$num = count ($data);

if($num < 14){

continue;

}

for ($c1=0; $c1 < $num; $c1++) {

$data[$c1] = mb_convert_encoding($data[$c1],'UTF-8',"GB2312,shift_jis");

}

$check_array['SUBJECT'] = trim($data['1']);

$check_array['

在将转换后的csv数据插入到MySQL数据库中的PHP脚本中,可以将MySQL第一列id设置为自增序列,这样就不需要在csv文件中添加这一列了。在建表时设置id为自增列的方法如下: ```sql CREATE TABLE your_table_name ( id INT(11) NOT NULL AUTO_INCREMENT, column1 VARCHAR(255), column2 VARCHAR(255), column3 VARCHAR(255), ... PRIMARY KEY (id) ); ``` 在上面的建表语句中,id列被定义为自增列,并且设置为主键。这样,在插入数据时,可以不用管id列,MySQL会自动为每一行生成一个唯一的id。 当然,如果你已经有了一个表,并且不想重新建表,也可以在插入数据时省略id列,MySQL会自动为每一行生成一个唯一的id。具体的插入数据语句如下: ```php $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_dbname"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 读取转换后的csv文件 $csv_data = array_map('str_getcsv', file('your_csv_file.csv')); // 插入数据 foreach ($csv_data as $data) { $column1 = $data[0]; $column2 = $data[1]; $column3 = $data[2]; // 省略id列 $sql = "INSERT INTO your_table_name (column1, column2, column3) VALUES ('$column1', '$column2', '$column3')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } } // 关闭连接 $conn->close(); ``` 在上面的代码中,我们首先读取了转换后的csv文件,并且使用foreach循环将每一行数据插入到MySQL表中。在插入数据时,我们省略了id列,由MySQL自动生成。注意,在实际使用时,需要根据自己的表结构和需要插入的字段来修改代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值