<?php/* * Created on 2011-11-22 *//* * PDO 對資料庫的串連 * */ $dns = "mysql:dbname=bbs;host=localhost"; $username = "root"; $password = ""; $pdo = new PDO($dns,$username,$password); $pdo->query("set names utf8"); //在mysqli 裡面有 set_charset(可以來設定編碼),便在PDO裡面沒有,所以就直接執行資料庫設定編碼語句 /* * 下面主要學習一下PDOstatement的用法,主要是從預先處理來說 * * *///$stmt = $pdo->prepare();//返回一個PDOstatement對象,還有一個返回PDOstatement的方法是query//利用foreach 直接操作Pdostatement/*-------------------------------------------------------------------------- *可以用 foreach 直接到 $statement 訪問\ *$sql = "select * from news";//$stmt = $pdo->prepare();//返回一個PDOstatement對象,還有一個返回PDOstatement的方法是query$statement = $pdo->query($sql); foreach($statement as $row) { echo $row['id']."---".$row['title']."---".$row['content']."</br>"; } *----------------------------------------------------------------------------- *下面對準備語句的操作 *操作流程: *1. prepare *兩種參數綁定方式:1. :title,:content2: ? *2. 執行參數綁定操作 $stmt->bindParam(":title",$title);也還以用bindValue() 綁定的只是能常量 *3. 執行綁定語句 $stmt->execute() *4. 可以用rowCount 來查詢受影響的行數,lastInsertId() 查義插入記錄的ID$sql = "delete from news where id =?";$stmt = $pdo->prepare($sql);$stmt->bindParam(1,$id);$id = GET['id'];if($stmt->execute())echo "受影響 ".$stmt->rowCount();elseecho "SQL語句執行失敗";$sql = "insert into news values('',:title,:content)";$stmt = $pdo->prepare($sql);$title="dfd";$content="dfd";$stmt->bindParam(":title",$title);$stmt->bindParam(":content",$content); $stmt->execute(); echo $stmt->rowCount(); echo $pdo->lastInsertId(); *//*擷取資料 * =---------------------------------------------------------------------- * *方法: *1 fetch() *$sql = "select * from news";$stmt = $pdo->query($sql);while($row = $stmt->fetch(PDO::FETCH_ASSOC)){var_dump($row);}2 fetchAll()$sql = "select * from news";$stmt = $pdo->query($sql);$row = $stmt->fetchAll(PDO::FETCH_ASSOC);var_dump($row);var_dump("下面是尋找列的值");//還可以指定列的值$column = $stmt->fetchAll(PDO::FETCH_COLUMN,1);var_dump($column);setFetchMode *----------------------------------------------------------------- * *bindColumn * *------------------------------------------------------------------ * bindColumn 是將查詢出來的記錄綁定到指定的變數上去,這個先綁定變數,然後再 * 執行 fetch(PDO::FETCH_COLUMN)將第條記錄綁定; * $sql = "select * from news where id=13"; $stmt = $pdo->query($sql); $stmt->bindColumn("id",$id); $stmt->bindColumn("title",$title); $stmt->bindColumn("content",$content); while($stmt->fetch(PDO::FETCH_COLUMN)) { var_dump("id :".$id); var_dump("title :".$title); var_dump("content :".$content); } fetchColumn(n)查詢出第N個欄位的值 columnCount 得到欄位的個數 ----------------------------------------- * */$sql = "select * from news";$stmt =$pdo->query($sql);while($title=$stmt->fetchColumn(2)) //將每條記錄的第二個字元查詢出來{var_dump($title);}echo $stmt->columnCount(); //查詢出多少個欄位?>