1

ファイル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

助けてくれてありがとう、

4

1 に答える 1

0

ステートメントのパラメーター化された値の列名を設定していないようです。のようなものを使用する必要が あります。単独でcolumnName=? 使用する場合。?

また、コメントで正確に説明されているように、SQL インジェクションの穴を防ぐために、すべてのパラメーター要求に対してパラメーター化されたパラメーターを使用する方がはるかに優れた方法です。

于 2013-02-28T22:08:53.943 に答える