php实现csv文件导入mysql数据库

config.db.php内容如下;

<?php
$username="root";
$userpass="123";
$dbhost="localhost";
$dbdatabase="credits2stakes";
//生成一个连接
$db_connect=mysql_connect($dbhost,$username,$userpass) or die("Unable to connect to the MySQL!");

//选择一个需要操作的数据库
mysql_select_db($dbdatabase,$db_connect);

 


index.php内容如下:

<meta http-equiv="Content-Type"content="text/html; charset=utf-8" />
<form name="frm1" enctype="multipart/form-data" action="insertdb.php" method="post">
   <input name="filename" type="file" /><input name="submit" type="submit" value="import" />
</form>

 


insertdb.php内容如下:

<?php
session_start();
header("Content-type:text/html;charset:utf-8");
//全局变量

$file=$_FILES['filename'];
$max_size="2000000"; //最大文件限制(单位:byte)
$fname=$file['name'];
$ftype=strtolower(substr(strrchr($fname,'.'),1));
//文件格式
$uploadfile=$file['tmp_name'];
if($_SERVER['REQUEST_METHOD']=='POST'){
     if(is_uploaded_file($uploadfile)){
          if($file['size']>$max_size){
         echo "Import file is too large";
         exit;
         }
          if($ftype!='csv'){
         echo "Import file type is error";
          exit;
         }
     }else{
     echo "The file is not empty!";
      exit;
     }
}

require("./config.db.php");    //连接mysql数据库
$row=0;
$filename=$file['tmp_name'];
$handle=fopen($filename,'r');
while(!feof($handle) && $data=fgetcsv($handle,1000,',')){
    $arr_result=array();
    if($row==0){
      $row++;
      continue;
    }
    if($row>0 && !empty($data)){
       $num=count($data);
       for($i=0;$i<$num;$i++){
        array_push($arr_result,$data[$i]);
     }

    //$name = iconv('gb2312','utf-8',$arr_result[1]);
    //$sex = iconv('gb2312','utf-8',$arr_result[2]);
    $sql="insert into inviter(inviter,invitees,time) value($arr_result[1],$arr_result[2],$arr_result[3])";
    //echo $sql;
    mysql_query("set names utf8");
    $result=mysql_query($sql);
    if($result){
        echo "插入成功!!!";
     }else{
        echo "插入失败!!!";
           }
     }
     $row++;
}
fclose($handle);

?>

 

可以使用以下 PHP 脚本将 CSV 文件导入 MySQL 数据库中: ```php <?php // 连接 MySQL 数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database_name"; $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 设置字符集 $conn->set_charset("utf8"); // 打开 CSV 文件 $filename = "data.csv"; $file = fopen($filename, "r"); // 读取 CSV 文件中的每一行数据并插入到 MySQL 数据库中 while (($data = fgetcsv($file)) !== FALSE) { // 跳过第一列(id) array_shift($data); // 构造 SQL 语句并插入数据 $sql = "INSERT INTO table_name (column2, column3, column4) VALUES ('" . implode("', '", $data) . "')"; if ($conn->query($sql) === FALSE) { echo "插入数据失败: " . $sql . "<br>" . $conn->error; } } // 关闭 CSV 文件数据库连接 fclose($file); $conn->close(); ?> ``` 在上面的示例代码中,需要将以下参数替换为实际的值: - $servername:MySQL 数据库所在的主机名或 IP 地址; - $username:连接 MySQL 数据库的用户名; - $password:连接 MySQL 数据库的密码; - $dbname:要连接的数据库名; - $filename:要导入CSV 文件路径; - table_name:要导入数据的表格名; - column2、column3、column4:要导入的列名,可以根据实际情况修改为其他的列名。 需要注意的是,上面的代码没有对 CSV 文件中的数据进行校验和过滤,因此可能存在 SQL 注入等安全问题,建议在实际使用时加入相应的安全措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值