Connection con = connectionFactory.getconnection();
String sql1="insert into $hanzdb.photolist (content,imageurl) values ('fileForm.getContend','upload/’+fname)";
PreparedStatement ps = con.prepareStatement(sql1);
ps.setString(1, fileForm.getContent());
ps.setString(2, fileForm.getImageurl());
//ResultSet rs = ps.executeQuery();
ps.executeUpdate();
out.flush();
out.close();
file.destroy();通过流上传图片路径到MySQL数据库,imageurl字段下类容为upload/xxxx.jpg(xxx.jpg 就是fname)
网上查了资料,一直没解决插入不成功!
其中photolist表结构如下
id imageid tile     uploadtime        content      imageurl          address
1   1      联想  2009-06-12 00:00:00  集体合影     upload/xxxx.jpg   北京
图片能成功上传到项目的upload目录下,就是插入路径出现问题,往有经验者能给与提示,谢谢!

解决方案 »

  1.   

    sql语句改成这样试试:
    String sql1="insert into $hanzdb.photolist (content,imageurl) values ('fileForm.getContend','upload/"+fname+"')";
      

  2.   

    调试中看下 sql1 的内容到底是什么?
      

  3.   

    语法错误吧?
    把:
    insert into $hanzdb.photolist (content,imageurl) values ('fileForm.getContend','upload/’+fname)改为:
    insert into $hanzdb.photolist (content,imageurl) values ('fileForm.getContend',concat('upload/’,fname))
      

  4.   

    应该叫 字符串连接使用不当,mysql的没有字符串连接,通过concat函数实现。不要把这一点和 编程语言中的 “+” 字符串连接符搞混了
      

  5.   

    fname是字段名 OR 变量名?
    字段名
    String sql1="insert into $hanzdb.photolist (content,imageurl) values ('fileForm.getContend',concat('upload/’+fname))";
      

  6.   

    不过正确的应该是  #1楼 zhoupuyue(.)  的。String sql1="insert into $hanzdb.photolist (content,imageurl) values ('fileForm.getContend','upload/"+fname+"')";
      

  7.   

    我也是知道我sql语法不对。。按照1楼的改过后,还是插入不成功,我插入 content和imageurl字段内容后,其他字段 id  imageid title都会为null? (id  是自增)
      

  8.   


    贴出你的sql1 的内容,另外和你的表的 create table 语句。这样别人才能帮你分析。
      

  9.   

    你插入的语句里面都没有imageid title字段,当然是null了,id应该不是null。
      

  10.   

    fname 是变量名,就是上传图片的文件名
      

  11.   


    我是用MySQL  Query Browser建的表,经验不足,没有把见表语句备份起来!
      

  12.   


    1. 贴出你当前的 sql1 的内容,这个在你的JAVA程序中调试中可得。
    2. 在你的 MySQL  Query Browser 中执行 show creaate table photolist
      

  13.   

    没有看到你传递参数,检查一下fname的值,是NULL?
    String sql1="insert into $hanzdb.photolist (content,imageurl) values 
    ('fileForm.getContend','upload/"+fname+"')";
      

  14.   


    'photolist', 'CREATE TABLE `photolist` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `imageid` int(10) unsigned DEFAULT NULL,
      `title` varchar(45) NOT NULL,
      `updatetime` datetime NOT NULL,
      `content` varchar(45) NOT NULL,
      `imageurl` varchar(60) NOT NULL,
      `address` varchar(16) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8'
      

  15.   

    F:\work\hanz\WebRoot\upload
    20094524
    fname=20094524.jpg
    Upload ok
    好吧,sql1语句无法打印出结果
      

  16.   

    String sql1="insert into $hanzdb.photolist (content,imageurl) values ('"  + fileForm.getContent() +  "','upload/" + fileForm.getImageurl() "')";
    PreparedStatement ps = con.prepareStatement(sql1);
    ps.executeUpdate();
      

  17.   

    在后台打印System.out.println(sql1);
      

  18.   

    当前sql1的内容 ?String sql1="insert into $hanzdb.img (content,imageurl) values ('fileForm.getContent','upload/"+fname+")";
    PreparedStatement ps = con.prepareStatement(sql1);
    ps.setString(1, fileForm.getContent());
    ps.setString(2, fileForm.getImageurl());
      

  19.   

    你这样肯定不行的啊!
    String sql1="insert into $hanzdb.img (content,imageurl) values (?,?)";
      

  20.   

    或者, 但JAVA中怎么表示参数占位符不太清楚,一般应该是?,这个你要到JAVA版去咨询一下了。Connection con = connectionFactory.getconnection();
    String sql1="insert into $hanzdb.photolist (content,imageurl) values (?,?)";
    PreparedStatement ps = con.prepareStatement(sql1);
    ps.setString(1, fileForm.getContent());
    ps.setString(2, fileForm.getImageurl());
    //ResultSet rs = ps.executeQuery();
    ps.executeUpdate();
    out.flush();
    out.close();
    file.destroy();
      

  21.   

    好像是fileForm.getImageurl()后面少个“+”
      

  22.   

    Connection con = connectionFactory.getconnection();
    String sql1="insert into $hanzdb.photolist (content,imageurl) values (?,?)";
    PreparedStatement ps = con.prepareStatement(sql1);
    ps.setString(1, fileForm.getContent());
    ps.setString(2, "upload/"+fileForm.getImageurl());
    ps.executeUpdate();
    out.flush();
    out.close();
    file.destroy();