认证高级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語句執行失敗。手機碼的將就看看