javascript - 将csv文件上传到mysql数据库sql语法错误

标签 javascript php ajax csv mysqli

我有一段 javascript 可以获取文件并生成名称。该数据被放入 FormData 对象中。这通过 ajax 发送到服务器。请参阅下面的 JavaScript:

function create_form_data(option_file_name){
  var file = $('#'+option_file_name.id).prop('files')[0];
  var form_data = new FormData(); 
  form_data.append('file', file);
  form_data.append('tblname', option_file_name.id.slice(12));
  send_ajax_request(form_data);

}

function send_ajax_request(pdata){
  $.ajax({
    url: "set_points_data.php",
    data: pdata,
    contentType: false,
    processData: false,
    dataType: "text",
    type: 'post',
    success: function (data) {
      console.log(data);
    },
    error: function(a,b,c){
      console.log(a);
      console.log(b);
      console.log(c);
    }
  });
}

现在在 set_points_data.php 中我执行以下操作:

include 'data.php';

if(isset($_FILES)){
    $data = $_FILES["file"]["name"];
    $db_name = mysqli_escape_string($conn, $_POST["tblname"]);
    return_ajax(create_table($conn, $db_name, $data));
}else{
    return_ajax("error");
}

function create_table($conn, $name, $data){
    send_sql($conn, "DROP TABLE IF EXISTS domestic_data_strings.".$name."");
    send_sql($conn, "CREATE TABLE $name (options varchar(255));");
    send_sql($conn, "LOAD DATA LOCAL INFILE $data INTO TABLE $name FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' (options)");

    return $name;

}

但我不断收到以下错误:

Error: LOAD DATA LOCAL INFILE column_age.csv INTO TABLE age FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY ' ' (options)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'column_age.csv INTO TABLE age FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' at line 1

我不知道这里出了什么问题:(我尝试了不同的 .csv 文件,但这没有什么区别。我检查了表是否存在且列正确。非常感谢任何帮助!

如果需要更多背景信息,请告诉我!

最佳答案

我不确定,但我认为您必须用单引号将查询中的文件名引起来: send_sql($conn, "LOAD DATA LOCAL INFILE '". $data . "' INTO TABLE $name fields TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' (options)") ;

关于javascript - 将csv文件上传到mysql数据库sql语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46524683/

相关文章:

php - 在单独的目录/文件中处理 AJAX 请求

php - 如何每分钟运行 'free -m' 并添加到当前页面(仅限 php)

javascript - 在 JQuery 中选择当前表单的值

javascript - 从表单获取文件而不查询输入字段

java - 如何仅重新加载部分代码 - Java

javascript - jQuery 仅在前一个 div 中添加查询

javascript - 打开 Intent 时“导航被阻止”

php - jquery实时更新数据库中的行

php - AJAX PHP JSON 编码不返回所有结果

javascript - 如何禁止回车键触发onkeyup事件?