Php 将CSV导入MySQL(WAMP),数据库中不会显示任何数据
我正在尝试创建一个网页,允许最终用户将CSV文件上载到数据库。我想我已经把它规划好了,页面的行为就像数据通过一样。然而,当我检查我的桌子时,它是空的 我有一个CSV中不存在的表[0]的guid触发器,因此我尝试从表[1]开始填充数据。我知道我的连接是可靠的,因为我能够在不同的网页上查询数据库中的数据 以下是我与数据库建立连接后的代码:Php 将CSV导入MySQL(WAMP),数据库中不会显示任何数据,php,html,mysql,forms,csv,Php,Html,Mysql,Forms,Csv,我正在尝试创建一个网页,允许最终用户将CSV文件上载到数据库。我想我已经把它规划好了,页面的行为就像数据通过一样。然而,当我检查我的桌子时,它是空的 我有一个CSV中不存在的表[0]的guid触发器,因此我尝试从表[1]开始填充数据。我知道我的连接是可靠的,因为我能够在不同的网页上查询数据库中的数据 以下是我与数据库建立连接后的代码: if ($_FILES[csv][size] > 0) { //get the csv file $file = $_FI
if ($_FILES[csv][size] > 0) {
//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data[1]) {
mysqli_query("INSERT INTO bnsf1 (offline, unit, commodity, shipper, origin, originState, current, currentState, estimatedArrival, carType, destination, destinationState, CP_dateTime, waybillNumber, equipmentLength) VALUES
(
'".addslashes($data[1])."',
'".addslashes($data[2])."',
'".addslashes($data[3])."',
'".addslashes($data[4])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."',
'".addslashes($data[7])."',
'".addslashes($data[8])."',
'".addslashes($data[9])."',
'".addslashes($data[10])."',
'".addslashes($data[11])."',
'".addslashes($data[12])."',
'".addslashes($data[13])."',
'".addslashes($data[14])."',
'".addslashes($data[15])."'
)
");
}
} while ($data = fgetcsv($handle,1000,",","'"));
//
//redirect
header('Location: form1.php?success=1'); die;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Import a CSV File</title>
</head>
<body>
<?php if (!empty($_GET[success])) { echo "<b>Your file has been imported.</b><br><br>"; } //generic success notice ?>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
Choose your file: <br />
<input name="csv" type="file" id="csv" />
<input type="submit" name="Submit" value="Submit" />
</form>
</body>
</html>
if($\u文件[csv][size]>0){
//获取csv文件
$file=$_文件[csv][tmp_名称];
$handle=fopen($file,“r”);
//循环浏览csv文件并插入数据库
做{
如果($data[1]){
mysqli_查询(“插入bnsf1(脱机、单位、商品、发货人、原产地、原始状态、当前、当前状态、估计数据竞争、类型、目的地、目的地状态、CP_日期时间、路单号、设备长度)值
(
“.addslashes($data[1])”,
“.addslashes($data[2])”,
“.addslashes($data[3])”,
“.addslashes($data[4])”,
“.addslashes($data[5])”,
“.addslashes($data[6])”,
“.addslashes($data[7])”,
“.addslashes($data[8])”,
“.addslashes($data[9])”,
“.addslashes($data[10])”,
“.addslashes($data[11])”,
“.addslashes($data[12])”,
“.addslashes($data[13])”,
“.addslashes($data[14])”,
“.addslashes($data[15])”
)
");
}
}而($data=fgetcsv($handle,1000,“,”,“”));
//
//重定向
header('Location:form1.php?success=1');die;
}
?>
导入CSV文件
选择您的文件:
谢谢你的关注 您必须像这样在mysqli\u查询中添加connetion变量
mysqli_query(your connection variable,"INSERT INTO bnsf1 (offline, unit, commodity, shipper, origin, originState, current, currentState, estimatedArrival, carType, destination, destinationState, CP_dateTime, waybillNumber, equipmentLength) VALUES
(
'".addslashes($data[1])."',
'".addslashes($data[2])."',
'".addslashes($data[3])."',
'".addslashes($data[4])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."',
'".addslashes($data[7])."',
'".addslashes($data[8])."',
'".addslashes($data[9])."',
'".addslashes($data[10])."',
'".addslashes($data[11])."',
'".addslashes($data[12])."',
'".addslashes($data[13])."',
'".addslashes($data[14])."',
'".addslashes($data[15])."'
) ");
您必须像这样在mysqli_查询中添加connetion变量
mysqli_query(your connection variable,"INSERT INTO bnsf1 (offline, unit, commodity, shipper, origin, originState, current, currentState, estimatedArrival, carType, destination, destinationState, CP_dateTime, waybillNumber, equipmentLength) VALUES
(
'".addslashes($data[1])."',
'".addslashes($data[2])."',
'".addslashes($data[3])."',
'".addslashes($data[4])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."',
'".addslashes($data[7])."',
'".addslashes($data[8])."',
'".addslashes($data[9])."',
'".addslashes($data[10])."',
'".addslashes($data[11])."',
'".addslashes($data[12])."',
'".addslashes($data[13])."',
'".addslashes($data[14])."',
'".addslashes($data[15])."'
) ");
如果在do while循环中
var\u dump($data)
会得到什么?另外,为什么要使用do while循环而不是普通的while循环?在您的第一次迭代中,$data[1]等于false,因此不会发生任何事情。好的,谢谢您的建议var_dump($data)
显示了我的所有数据,但它看起来很糟糕,但它确实告诉我,我的数据至少在某个地方。关于循环,我不确定我是否了解你。$data[0]
不会覆盖我的guid值吗?首先,请搜索一个合适的教程,解释在PHP中安全处理MySQL数据的基础知识。无论你从哪里得到这个想法,在这里使用addslashes
在任何方面都是正确的,这肯定是一个非常糟糕的资源。感谢CBroe的批评,请详细说明一个特定的源代码,它将有助于研究这些改进?如果你var\u dump($data),你会得到什么
在do while循环中?另外,为什么要使用do while循环而不是普通的while循环?在您的第一次迭代中,$data[1]等于false,因此不会发生任何事情。好的,谢谢您的建议var_dump($data)
显示了我的所有数据,但它看起来很糟糕,但它确实告诉我,我的数据至少在某个地方。关于循环,我不确定我是否了解你。$data[0]
不会覆盖我的guid值吗?首先,请搜索一个合适的教程,解释在PHP中安全处理MySQL数据的基础知识。无论你从哪里得到这个想法,在这里使用addslashes
在任何方面都是正确的做法,这肯定是一个非常糟糕的资源。感谢CBroe的批评,是否愿意详细说明一个特定的源代码,这将有助于研究这些改进?