php學習筆記(二十三)PDO的預先處理語句的查詢以及結果集的使用

來源:互聯網
上載者:User
<?php /** * php data object *  * 預先處理(推薦使用) *  * PDOStatement * 可以準備一個預先處理語句,也可以處理結果集 * 預留位置有兩種: * ?參數索引數組,按索引順序使用 * 名字參數關聯陣列,按名次使用,與順序無關 *  *///一:連結$dsn = "mysql:host=localhost;dbname=hibernate";$username = "root";$passwd = "root";$options = array(PDO::ATTR_AUTOCOMMIT=>1);try {$pdo = new PDO($dsn, $username, $passwd, $options);}catch (PDOException $e){echo "資料庫連接失敗".$e->getMessage();exit;}//二:預先處理//準備語句//$sql = "select * from users where id = ?";$sql = "select * from users where id = :id";$stmt = $pdo->prepare($sql);//所有sql都可以執行//綁定//$stmt->bindParam(1, $id);$stmt->bindParam(":id", $id);$id = 2;if ($stmt->execute()) {echo "執行成功"."<br>";echo "最後影響的插入id".$pdo->lastInsertId()."<br>";}//直接在執行的時候插入語句(可用於傳值接收)$sql = "select * from users where id = :id";$stmt = $pdo->prepare($sql);//所有sql都可以執行$stmt->execute(array(":id"=>2));//直接在執行的時候插入語句(可用於傳值接收)$sql = "select * from users where id = ?";$stmt = $pdo->prepare($sql);//所有sql都可以執行$stmt->execute(array(12));//擷取結果集$sql = "select * from users where id < ?";$stmt = $pdo->prepare($sql);//所有sql都可以執行$stmt->execute(array(12));//設定模式的話,就是索引擷取都按照這個模式了$stmt->setFetchMode(PDO::FETCH_NUM);/** * 方式一:單行擷取 *///索引數組返回//$row = $stmt->fetch(PDO::FETCH_NUM);//關聯陣列返回//$row = $stmt->fetch(PDO::FETCH_ASSOC);//都返回返回//$row = $stmt->fetch(PDO::FETCH_BOTH);//然後再進行擷取//$row = $stmt->fetch();//print_r($row);/** * 方式二:全部擷取 */$data = $stmt->fetchAll();/** * 方式三:繫結資料行 * 下載執行方法之前 * 執行 時候後,迴圈輸出時,進行賦值 */$sql = "select * from users where id < :id";$stmt = $pdo->prepare($sql);//所有sql都可以執行$stmt->bindColumn("id", $id,PDO::PARAM_INT);$stmt->bindColumn("name", $name,PDO::PARAM_STR);$stmt->bindColumn("price", $price);$stmt->execute(array(":id"=>5));//輸出資料行名for ($i = 0; $i < $stmt->columnCount(); $i++) {$field = $stmt->getColumnMeta($i);echo $field["name"]."---";}echo "<br>";//輸出所有查詢資料while ($stmt->fetch()){echo "$id--$name--$price<br>";}echo "總行數:".$stmt->rowCount()."<br>";echo "總列數:".$stmt->columnCount()."<br>";?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.