gpt4 book ai didi

php - 使用php将csv文件上传到sql数据库的更好方法

转载 作者:行者123 更新时间:2023-11-29 16:46:29 25 4
gpt4 key购买 nike

请帮助我改进我的代码。我有这个 html 表单,仅选择 .csv 文件扩展名,将其上传到我的 sql 数据库中。我该如何改进这个?例如,如果没有选择文件,则使按钮不可点击。

<form class="ui input" enctype="multipart/form-data" method = "POST" role = "form">
<input type = "file" name ="file" id="file" size = "150">
<button class="ui small red button" type = "submit" class = "btn btn-default" name ="submit" value = "submit">Upload CSV</button>
</form>

然后这是我上传csv的php代码,我怎样才能制作一条弹出消息说“您的文件正在上传,请稍候”和“上传完成”。我的问题是我的 csv 文件的标题也已上传,如何排除 csv 的第一行?

<?php

if(isset($_POST['submit'])) {
$host = 'localhost';
$user = 'root';
$password = '';
$db = 'jeremy_db';

$con = mysqli_connect($host,$user,$password) or die('Could not' .mysqli_error($con));

mysqli_select_db($con, $db) or die ('Could not' .mysqli_error($con));

$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");

$c = 0;

while(($csvdata = fgetcsv($handle,1000,","))!== FALSE){
$sha1 = $csvdata[0];
$vsdt = $csvdata[1];
$trendx = $csvdata[2];

$sql = "INSERT INTO jeremy_table_trend (sha1,vsdt,trendx) VALUES ('$sha1','$vsdt','$trendx')";
$query = mysqli_query($con , $sql);

$c = $c+1;
}
if($query){
echo "SABRE";
}
else {
echo "SLAM";
}
}
?>

我正在使用 php 7,大家有什么建议吗?

最佳答案

最初,您可以禁用提交按钮。然后单击输入文件,您可以调用 js 函数,该函数将验证文件扩展名并相应地启用提交按钮。

为了显示消息 - 您可以编写一个 JavaScript 函数 onclick 来提交按钮。

对于动态处理大文件来说,这不是一个好的做法。执行所有查询将会超时(查询数 = csv 行数)。您可以按照以下步骤执行此操作 -

  1. 首先将csv文件上传到服务器
  2. 创建一个存储过程(将上传的文件路径传递给该过程),该过程会将 csv 文件加载到数据库中。您可以在此处获取加载文件的帮助 - https://dev.mysql.com/doc/refman/8.0/en/load-data.html
  3. 对于排除 header ,您将在上面的链接中获得说明

关于php - 使用php将csv文件上传到sql数据库的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53079055/

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