u010793913
houiqwer
采纳率100%
2014-12-09 00:58

关于servlet中sql语句的问题

已采纳

String sql="select * from t_log where name=? and pw=?";
在运行到这句的时候产生以下错误

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 '? and pw=?' at line 1

换成
String sql="select * from t_log"; 可以执行
其他的sql语句
String sql = "insert into t_log(name,pw) values(?,?)"; 也能执行

求解释,是不是where的用发错了啊

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

9条回答

  • eagleyan Coursera 7年前
    点赞 1 评论 复制链接分享
  • shenlan0322 shenlan0322 7年前

    肯定不是运行到这句报的错吧,你执行这个sql时报的错,你之后在提交这个SQL之前,有没有给这两个问号复制 String sql="select * from t_log where name=? and pw=?";
    在运行到这句的时候产生以下错误

    点赞 评论 复制链接分享
  • fangmingshijie 花谢尊前不敢香 7年前

    先丢到客户端执行,看是否可以。

    点赞 评论 复制链接分享
  • Kelley_cfy Kelley_cfy 7年前

    这种SQL是属于PreparedStatement,需要这样使用:
    PreparedStatement pstmt = conn.prepareStatement("select * from t_log where name=? and pw=?"); // 创建语句,里面的参数等可以用问号代替
    pstmt.setString(1,"a");//给第一个问号赋值"a";
    pstmt.setString(2,"b");//给第二个问号赋值"b";

    pstmt.executequery();

    点赞 评论 复制链接分享
  • beier9737 beier9737 7年前

    select * from t_log where name='名字' and pw='密码’直接参数拼接起来呢

    点赞 评论 复制链接分享
  • beier9737 beier9737 7年前

    String sql="select * from t_log where pw=?";
    String sql="select * from t_log a where a.name=?";
    这样试试

    点赞 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 7年前

    这种是参数化查询语句,你没给执行语句的对象添加name和pw参数吧

    点赞 评论 复制链接分享
  • FlyppyBugs FlyppyBugs 7年前

    where没用错啊,是不是你要查询的值不符合条件呢

    点赞 评论 复制链接分享
  • u010793913 houiqwer 7年前

    追加,改为String sql="select * from t_log where name=? "; 依然报错

    点赞 评论 复制链接分享

相关推荐