php中只有一行从csv导入mysql表
我正在尝试将记录从CSV文件导入MySQL表,但只插入了第一行。剩余未上载到数据库php中只有一行从csv导入mysql表,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试将记录从CSV文件导入MySQL表,但只插入了第一行。剩余未上载到数据库 if (isset($_POST["upload_csv"])) { $fileName = $_FILES["file"]["tmp_name"]; if ($_FILES["file"]["size"] > 0) { $file = fopen($fileName, "r"); while (($column = fgetcsv($file, 10
if (isset($_POST["upload_csv"])) {
$fileName = $_FILES["file"]["tmp_name"];
if ($_FILES["file"]["size"] > 0) {
$file = fopen($fileName, "r");
while (($column = fgetcsv($file, 10000, ",")) !== FALSE) {
$sqlInsert = "INSERT into price_dump (`stock_id`,`stock_price`,`previous_price`,`minute_set`)
values ('" . $column[0] . "','" . $column[1] . "','" . $column[2] . "','" . $column[3] . "')";
$result = mysqli_query($conn, $sqlInsert);
if (! empty($result)) {
$type = "success";
$message = "CSV Data Imported into the Database";
} else {
$type = "error";
$message = "Problem in Importing CSV Data";
}
}
}
}
可能是csv文件,以分隔 所以调试。注释掉所有sql插入行,只需执行
echo
语句。你看到每一行了吗?这是一段可怕的代码,易于sql注入和黑客攻击。我强烈建议检查如何防止SQL注入,并将变量绑定到查询。
if (isset($_POST["upload_csv"])) {
$fileName = $_FILES["file"]["tmp_name"];
if ($_FILES["file"]["size"] > 0) {
$file = fopen($fileName, "r");
$lines = file($_FILES["file"]["tmp_name"]);
foreach ($lines as $line) {
$column = explode(',', $line);
$sqlInsert = "INSERT into price_dump (`stock_id`,`stock_price`,`previous_price`,`minute_set`)
values ('" . $column[0] . "','" . $column[1] . "','" . $column[2] . "','" . $column[3] . "')";
$result = mysqli_query($conn, $sqlInsert);
if (! empty($result)) {
$type = "success";
$message = "CSV Data Imported into the Database";
} else {
$type = "error";
$message = "Problem in Importing CSV Data";
}
}
}
}