【问题标题】:MySQLSyntaxErrorException: SQL Insert syntax errorMySQLSyntaxErrorException:SQL 插入语法错误
【发布时间】:2014-02-26 22:46:34
【问题描述】:

我在尝试使用 java 将值从 csv 插入数据库时​​收到语法错误。这是我的代码

   try{
  BufferedReader br=new BufferedReader(new FileReader(filename1));
  String line;

  while((line=br.readLine())!=null){
  String[]value=line.split(",");//Seperator


  System.out.println(value[0]);
  System.out.println(value[1]);
  System.out.println(value[2]);



 if (programused == "Example"){





 String sql="insert into websitehistory (Date, URL, VisitCount) "
      + "values (?,?,?)";

 pst=conn.prepareStatement(sql);
 pst.setString(1, value[0]);
 pst.setString(2, value[1]);
 pst.setString(3, value[2]);  

  pst.executeUpdate(sql);

  Update_exampleTable();

 }

这是将分隔值插入数据库的 mysql 查询。值是一个数组,包含输入的 csv 文件“filename1”

这是我的表结构:

Field          Type     Null    Key     Default      Extra
Date           text     No              NULL
URL            text     No              NULL
VisitCount     text     No              NULL

以及我要插入的 csv 文件中的数据类型:

31/01/2014  15:26:00,  https://www.youtube.com/,  13
31/01/2014  15:25:00,  https://www.youtube.com/,  17
30/01/2014  12:15:00,  https://www.facebook.com/, 20

这会引发 MySQL 语法错误:

Check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?)' at line 1.

如果我将? 替换为value[0] value[1] 等等,则会插入一些数据,但检索时会在数据中给出不同的SQL 语法错误,但在使用占位符时,不会将任何数据插入表中。任何帮助都会很棒。

【问题讨论】:

    标签: java mysql csv


    【解决方案1】:

    你应该打电话:

    pst.executeUpdate();
    

    代替:

    pst.executeUpdate(sql);
    

    【讨论】:

      猜你喜欢
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      相关资源
      最近更新 更多