$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中,轉(zhuǎn)成int還是不行?非要我指定一個綁定類型?
1 回答

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