abstrait://1、連接數(shù)據(jù)庫(kù),創(chuàng)建pdo對(duì)象 $type = 'mysql';//數(shù)據(jù)庫(kù)類(lèi)型 $host = '127.0.0.1';//主機(jī)名 $dbname = 'test';//數(shù)據(jù)庫(kù)名 $charset = 'utf8';//字符集 //$port 
//1、連接數(shù)據(jù)庫(kù),創(chuàng)建pdo對(duì)象 $type = 'mysql';//數(shù)據(jù)庫(kù)類(lèi)型 $host = '127.0.0.1';//主機(jī)名 $dbname = 'test';//數(shù)據(jù)庫(kù)名 $charset = 'utf8';//字符集 //$port = 3306;//端口 $dsn = $type . ':host=' . $host . ';dbname=' . $dbname . ';charset=' . $charset; $user = 'root';//用戶名 $pass = '123456';//密碼 try{ //連接數(shù)據(jù)庫(kù) $pdo = new \PDO($dsn,$user,$pass); //關(guān)閉數(shù)據(jù)庫(kù)。默認(rèn)在代碼執(zhí)行完畢后會(huì)自動(dòng)關(guān)閉。 // $pdo = null; // unset($pdo); // var_dump($pdo); }catch (PDOException $e){ exit($e->getMessage()); } //2、創(chuàng)建預(yù)處理對(duì)象 $sql = 'select `id`,`name`,`email` from `user` where `id` > :id'; //$stmt 是PDOStatement類(lèi)的對(duì)象 $stmt = $pdo->prepare($sql); $stmt->setFetchMode(\PDO::FETCH_ASSOC); //3、執(zhí)行sql語(yǔ)句 if($stmt->execute([':id' => 2])){ //4、解析結(jié)果集 $res = $stmt->fetchAll(\PDO::FETCH_ASSOC); }else{ print_r($stmt->errorInfo());die; } //5、遍歷結(jié)果集 print_r($res); //獲取結(jié)果數(shù) $stmt->rowCount();//返回受影響記錄數(shù),一般用到寫(xiě)操作中(增、刪、改) //獲取所有記錄數(shù)量 $stmt = $pdo->prepare('select count(id) num from user '); $stmt->execute(); $num = $stmt->fetchColumn(0); echo '記錄數(shù):'.$num; //查詢結(jié)果綁定 $stmt->bindColumn('num',$num); $stmt->fetch(\PDO::FETCH_BOUND); echo '記錄數(shù):'.$num; /** * 參數(shù)綁定 bindParam() bindValue() * 列綁定 bindColumn() * 結(jié)果集遍歷 fetch() while() **/ //1、連接數(shù)據(jù)庫(kù),創(chuàng)建PDO對(duì)象 $pdo = new \PDO('mysql:host=127.0.0.1;dbname=test','root','123456'); //2、創(chuàng)建預(yù)處理對(duì)象 $sql = 'select `id`,`name`,`email`,`create_time` from `user` where `status` = :status'; $stmt = $pdo->prepare($sql); //3、執(zhí)行查詢 $stmt->execute([':status' => 1]); //4、遍歷結(jié)果 while($row = $stmt->fetch(\PDO::FETCH_ASSOC)){ $arr[] = $row; } $stmt = null;//釋放結(jié)果集 $pdo = null;// //print_r($arr); echo <<<EOT <table class="table table-hover"> <caption>信息表</caption> <tr> <td>ID</td> <td>NAME</td> <td>E-MAIL</td> <td>TIME</td> </tr> EOT; foreach ($arr as $item) { $time = date('Y-m-d',$item['create_time']); echo <<<EOT <tr> <td>{$item['id']}</td> <td>{$item['name']}</td> <td>{$item['email']}</td> <td>{$time}</td> </tr> EOT; } echo <<<EOT </table> EOT; //參數(shù)綁定 //1、連接數(shù)據(jù)庫(kù),創(chuàng)建PDO對(duì)象 $pdo = new \PDO('mysql:host=127.0.0.1;dbname=test','root','123456'); //2、創(chuàng)建預(yù)處理對(duì)象 $sql = 'select `id`,`name`,`email`,`create_time` from `user` where `status` = :status'; $stmt = $pdo->prepare($sql); //3、執(zhí)行查詢 $status = 1; //$stmt->bindParam(':status',$status,\PDO::FETCH_ASSOC);//只支持參數(shù)模式 $stmt->bindValue(':status',1,\PDO::FETCH_ASSOC);//可以支持直接傳入字面量 $stmt->execute(); //4、遍歷結(jié)果 $stmt->bindColumn(1,$id,\PDO::PARAM_INT); $stmt->bindColumn(2,$name,\PDO::PARAM_STR,200); $stmt->bindColumn(3,$email,\PDO::PARAM_STR,100); $stmt->bindColumn(4,$createTime,\PDO::PARAM_STR,100); while($stmt->fetch(\PDO::FETCH_BOUND)){ // echo $id,$name,$email,$createTime,'<br>'; //將變量轉(zhuǎn)為數(shù)組 $arr1[] = compact('id','name','email','createTime'); } echo '<pre>',print_r($arr1);
Professeur correcteur:天蓬老師Temps de correction:2018-11-29 12:19:11
Résumé du professeur:將結(jié)果集中的字段與變量進(jìn)行綁定, 是一種非常自然的思維, 類(lèi)似于將字段與類(lèi)屬性綁定,后面你就會(huì)體會(huì)這種操作方式的精妙與強(qiáng)大之處