php PDO遇到的坑

來源:互聯網
上載者:User

標籤:答案   param   存在   logs   etc   soc   cas   返回   class   

<?php$dbConn = new PDO(    "mysql:host=localhost;dbname=adtuu",‘root‘,‘root‘,    array(        // 強制 PDO 擷取的表欄位字元的大小寫轉換,或原樣使用列資訊        PDO::ATTR_CASE              => PDO::CASE_LOWER,        // 執行出錯時拋出異常        PDO::ATTR_ERRMODE           => PDO::ERRMODE_EXCEPTION,        //  將返回的Null 字元串轉換為 SQL 的 NULL        PDO::ATTR_ORACLE_NULLS      => PDO::NULL_NATURAL,        // 返回資料的時候不將數值轉換為字串        PDO::ATTR_STRINGIFY_FETCHES => false,        // 設定為false禁止PDO類比預先處理語句,而使用真正的預先處理語句,即有MySQL執行預先處理語句        PDO::ATTR_EMULATE_PREPARES  => false,    ));$sql = ‘SELECT adtuu_uuid, adtuu_name FROM blog_adtuu WHERE adtuu_uuid = ? AND adtuu_name = ?‘;$q = $dbConn->prepare($sql);$id = 1;$name = ‘adtuu‘;//$q->bindParam(1, $id);//$q->bindParam(2, $name);$i = 1;foreach (array(1, ‘adtuu‘) as &$bind) {    $q->bindParam($i, $bind);    $i++;}$result = $q->execute() ? $q->fetch(PDO::FETCH_ASSOC) : array();$q->closeCursor();var_dump($result);//假設資料庫中存在有id為1,name為adtuu的資料//大家覺得上面的查詢能夠查出資料來嗎???//答案當然是否定的,為什麼呢?//原來是bindParam中第二個參數要是引用值才行//需要修改成下面的$i = 1;foreach (array(1, ‘adtuu‘) as &$bind) {    $q->bindParam($i, $bind);    $i++;}//注意&$bind//當然還有更簡單的方法,就是拋開迴圈直接將參數傳入execute中$result = $q->execute(array(1, "adtuu‘s")) ? $q->fetch(PDO::FETCH_ASSOC) : array();

  

php PDO遇到的坑

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.