我正在尝试将我的txt文件上传到我的数据库中,但我认为没有任何事情发生。我在phpmyadmin中检查了我的数据库,但没有插入任何内容。如何将我的数据加载并插入到mysql数据库中?
这是我的代码:
<?php
$conn = mysql_connect("localhost", "login", "password") or die(mysql_error());
mysql_select_db("database", $conn);
if(!isset($_POST['submit']))
{
$uploadtxt = "nyccrash.txt";
$handle= fopen($uploadtxt, "r");
// error checking.
if($handle === false) {
die("Error opening $uploadtxt");
}
while($fileop = fgetcsv($handle, 1000, ",") !== false) {
$crash_year = $fileop[0];
$accident_type = $fileop[1];
$collision_type = $fileop[2];
$weather_condition = $fileop[3];
$light_condition = $fileop[4];
$x_coordinate = $fileop[5];
$y_coordinate = $fileop[6];
$sql = mysql_query("INSERT INTO nyccrash (crash_year, accident_type, collision_type, weather_condition, light_condition, x_coordinate, y_coordinate) VALUES ($crash_year, $accident_type, $collision_type, $weather_condition, $light_condition, $x_coordinate, $y_coordinate)");
} }
&GT?;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> NYC Crash Data </title>
<link ref="stylesheet" type "text/css" href="../style/style.css" />
</head>
<body>
<div id="mainWrapper">
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="file"/>
<br/>
<input type="submit" name="submit" value="submit"/>
</form>
</div>
答案 0 :(得分:0)
如果这是文字数据,那么您忘记了'
数据
$sql = mysql_query("INSERT INTO nyccrash (crash_year, accident_type,
collision_type, weather_condition, light_condition, x_coordinate, y_coordinate)
VALUES ('$crash_year', '$accident_type', '$collision_type',
'$weather_condition', '$light_condition', '$x_coordinate', '$y_coordinate')");
答案 1 :(得分:0)
以下是如何使用不受信任的输入参数化SQL语句。
$stmt = $db->prepare("INSERT INTO nyccrash (crash_year, accident_type,
collision_type, weather_condition, light_condition, x_coordinate, y_coordinate)
VALUES (?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param('sssssss', $crash_year, ...);
$stmt->execute();
有关详细信息,请参阅http://codular.com/php-mysqli。
如果您不明白为什么要这样做,请查看SQL注入,并且在您理解之前不要编写另一行代码。
答案 2 :(得分:0)
您可以使用this answer
的库来完成此操作$csv = New CSVReader();
$result = $csv->parse_file('Test.csv');//path to file should be csv
echo '<pre>'; //
print_R($result); // Only for testing
if($result){
foreach($result as $row){
$crash_year = $row['crash_year'];
$accident_type = $row['accident_type'];
$collision_type = $row['collision_type'];
$weather_condition = $row['weather_condition'];
$light_condition = $row['light_condition'];
$x_coordinate = $row['x_coordinate'];
$y_coordinate = $row['y_coordinate'];
$query = "INSERT INTO nyccrash";
$query .= "(crash_year, accident_type, collision_type, weather_condition, light_condition, x_coordinate, y_coordinate)";
$query .= " VALUES ";
$query .= "('$crash_year','$accident_type','$collision_type', '$weather_condition', '$light_condition', '$x_coordinate', '$y_coordinate')";
mysqli_query($query);
unset($query);
}
}
有一件事我注意到在insert查询中你必须在数据库表中有一些varchar字段,为此你缺少逗号。用逗号包装varchar字段。这可能是问题,并使用die和mysql_error来查看错误究竟是什么。