亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PDO預(yù)處理與參數(shù)綁定

original 2018-11-29 11:29:10 243
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)大之處

Notes de version

Entrées populaires