java - 将 PDF 文件更新为 mysql BLOB 您的 SQL 语法有误;

标签 java mysql sql

我将文件 PDF 上传到 MySQL 数据库,但更新方法一直在工作,它一直给我一个错误,我试图修复它但无法工作 这就是方法,

public void updateProjet(String location,String img) throws Exception
              {
                   // Créer une connexion JDBC Oracle sur la Base de Données 
       .. ici connection ..

           String cad = "update  projet set NomProjet='"+this.getnom_projet()+
             "', DateDeb='"+this.getdd()+ "', DateFin='"+this.getdf()+
             "', iduser='"+this.getid()+ "',IdProjet='"+this.getnprojet()+
           "',?,? where idpro='"+this.getidpro()+"'";
        PreparedStatement pStmt = conn.prepareStatement(cad);
        pStmt.setString(1, img);

        File fichier = new File(location);
        FileInputStream io = new FileInputStream(fichier);
        pStmt.setBinaryStream(2,  (InputStream)io,(int)fichier.length());

        pStmt.executeUpdate();
              } 

错误是:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 ''Exercices2_corrige_2.pdf',_binary'%PDF-1.4
%Çì�¢
5 0 obj
<</Length 6 0 R/Filter' at line 1

请帮忙,非常感谢,

最佳答案

你的语句的参数化值好像没有设置列名。 你将不得不使用类似的东西: columnName=? 你在哪里单独使用 ?

如评论中所述,为所有参数请求使用参数化参数以防止 SQL 注入(inject)漏洞是一种更好的做法。

关于java - 将 PDF 文件更新为 mysql BLOB 您的 SQL 语法有误;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146546/

相关文章:

java - 从 Xpath 获取属性

mysql - 如何从 MySQL 的 DATETIME 字段中仅选择日期?

php - 从数据库中删除不起作用

sql - 用于练习的其他 SQL Server 示例数据库

sql - 在 SQL 中连接地址字段

sql - 通过外键联合查询

java - 撒克逊 s9api : When to expect TinyDocumentImpl vs DocumentImpl

java.io.FileNotFoundException :/tmp/(Too many open files)

java - 从另一个类调用变量时失败。 (JAVA)

mysql - COUNT 是否比提取记录和在代码中计数更快?