认证高级PHP讲师
PrepareStatement的使用流程如下:
使用占位符SQL实例化
调用bindXX方法完成参数绑定
调用executeUpdate或executeQuery方法,这里不传参数了,因为参数都在1、2步处理了
你上面已经把sql传给pst了 干嘛还要传给executQuery呢?
你的psr.executeQuery(sql),已经传了参数得到结果集了,,不用再传参数了,,
PreparedStatement 类是用与预处理sql语句的。例如:`ResultSet rs = null;PreparedStatement loginStatement =
sqlDAO.sqlConnection().prepareStatement("SELECT username,password FROM user_table WHERE username = ? AND password = ?"); loginStatement.setString(1, username); loginStatement.setString(2, password); rs = loginStatement.executeQuery();`
?表示占位符,我们可以使用setString(int, String) 等方法来为占位符设置值。其中int 参数为第几个占位符(注意不是从0开始,是数学的第几个)第二个表示参数是我们将要把对应占位符(?)替换的值。这样做可以避免我们的数据库被sql注入。值得注意的是,sql语句关键字不可以被占位符替代,因为占位符会自动为我们指定的String用单引号包裹导致sql语句执行失败。手机码的将就看看
PrepareStatement的使用流程如下:
使用占位符SQL实例化
调用bindXX方法完成参数绑定
调用executeUpdate或executeQuery方法,这里不传参数了,因为参数都在1、2步处理了
你上面已经把sql传给pst了 干嘛还要传给executQuery呢?
你的psr.executeQuery(sql),已经传了参数得到结果集了,,不用再传参数了,,
PreparedStatement 类是用与预处理sql语句的。
例如:
`ResultSet rs = null;
PreparedStatement loginStatement =
?表示占位符,我们可以使用setString(int, String) 等方法来为占位符设置值。其中int 参数为第几个占位符(注意不是从0开始,是数学的第几个)第二个表示参数是我们将要把对应占位符(?)替换的值。这样做可以避免我们的数据库被sql注入。值得注意的是,sql语句关键字不可以被占位符替代,因为占位符会自动为我们指定的String用单引号包裹导致sql语句执行失败。手机码的将就看看