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

时间:2013-02-28 22:02:36

标签: 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

请帮助和感谢,

1 个答案:

答案 0 :(得分:0)

您似乎没有为语句的参数化值设置列名。 你必须使用类似的东西: columnName=? 你单独使用?的地方。

正如评论中所预测的那样,为所有参数请求使用参数化参数来防止SQL注入漏洞是一种更好的做法。