$db = new PDO();$sth = $db->prepare('sql');然后$db = new PDO();$sth = $db->prepare('select * from `table` where p1 = :p1 limit :limit');$sth->bindValue(':p1',$var_p1,PDO::PARAM_INT);$sth->bindValue(':limit',$var_limit,PDO::PARAM_INT);# ^ 這樣正確$sth->execute(array(intval($var_p1),intval($var_limit));# ^ 為毛報錯?,execute中,轉成int還是不行?非要我指定一個綁定類型?
1 回答

SMILET
TA貢獻1796條經驗 獲得超4個贊
你這種execute調用方法,prepare時,要使用問號占位符;既然用了“冒號參數名”的方式,execute時傳遞的數組也要使用冒號參數名作為數組下標。
另外,你是想獲取將占位符替換成實際參數值之后的SQL語句嗎?PDO是辦不到的,因為prepared statement本質上是一種臨時的存儲過程
- 1 回答
- 0 關注
- 118 瀏覽
添加回答
舉報
0/150
提交
取消