如何解决在 MYSQL 数据库中插入 CSV 文件期间处理特定范围行
我正在尝试将数据从 csv 插入到 MysqL 数据库中,如下所示并且工作正常
$file = fopen('../assets/uploads/'.$file_name,"r");
while (($column = fgetcsv($file,10000,",")) !== FALSE) {
$fname = "";
if (isset($column[0])) {
$fname = MysqLi_real_escape_string($MysqLi,$column[0]);
}
$lname = "";
if (isset($column[1])) {
$lname = MysqLi_real_escape_string($MysqLi,$column[1]);
}
$email = "";
if (isset($column[2])) {
$email = MysqLi_real_escape_string($MysqLi,$column[2]);
}
$sqlInsert = "INSERT into $lead_data_table (lfname,llname,lemail,lead_id,lead_user_id) VALUES (?,?,?)";
$stmt = $MysqLi->prepare($sqlInsert);
$stmt->bind_param('sssii',$fname,$lname,$email,$lead_insert_id,$lead_user_id);
$stmt->execute();
$stmt->close();
$insertId = MysqLi_insert_id($MysqLi);
但是由于某种原因I want insert data from CSV like 0 to 100 or 100 to Remain All
。我不知道我该怎么做?让我知道这里是否有人可以帮助我做同样的事情。
谢谢!
解决方法
计算 csv 行数并跳过。像这样的事情将从第 100 行开始处理。
$file = fopen('../assets/uploads/'.$file_name,"r");
$lineCount = 0;
while (($column = fgetcsv($file,10000,",")) !== FALSE) {
$lineCount ++;
if ($lineCount >= 100) {
/* process the line */
}
}
顺便说一句,您正确地执行了准备好的语句。因此,您无需在插入数据之前使用 mysqli_real_escape_string()
对其进行处理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。