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

搜索
博主信息
博文 35
粉絲 0
評(píng)論 0
訪問量 44236
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
Mysqli與PDO操作數(shù)據(jù)庫(kù)(0830)
Ray的博客
原創(chuàng)
918人瀏覽過

1)編程:MySQLi面向?qū)ο笾械牟樵儾僮?/p>

實(shí)例

<?php
/**
 * 預(yù)處理查詢操作
 */

//連接數(shù)據(jù)庫(kù)
require 'demo1.php';

//準(zhǔn)備SQL語句
$sql = "SELECT `staff_id`,`name`,`salary`  FROM `staff` WHERE `salary` < ? ;";

// 創(chuàng)建預(yù)處理對(duì)象
$stmt = $mysqli->stmt_init();

if ($stmt->prepare($sql)) {
    //綁定參數(shù)
    $stmt->bind_param('i', $salary);

    //設(shè)置參數(shù)
    $salary = 4000;

    if ($stmt->execute()) {

        //獲取結(jié)果集并放到緩存區(qū)
        $stmt->store_result();

        //將結(jié)果集中的列綁定到變量上
        $stmt->bind_result($id,$name, $salary);

        //結(jié)果集是否不為,只有不為空的時(shí)候才遍歷
        if ($stmt->num_rows > 0) {
            // 循環(huán)遍歷結(jié)果集
            // fetch()每次獲取一條記錄,并將指針自動(dòng)下移
            while ($stmt->fetch()) {
                echo '<p>id:'.$id.'---姓名:' .$name.'---工資:'.$salary.'</p>';
            }
        } else {
            exit('<p>當(dāng)前表中沒有數(shù)據(jù)</p>');
        }

        // 釋放結(jié)果集
        $stmt->free_result();
    } else {
        //返回執(zhí)行階段的出錯(cuò)信息
        exit($stmt->errno. ': ' . $stmt->error);
    }
} else {
    //返回sql語句檢測(cè)階段的出錯(cuò)信息
    exit($stmt->errno. ': ' . $stmt->error);
}


//注銷stmt對(duì)象
$stmt->close();

//關(guān)閉連接
$mysqli->close();

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

運(yùn)行效果圖:

hm-1.png

2)問答: PDO 的優(yōu)勢(shì)

答:用PDO的好處是,PDO支持多種數(shù)據(jù)庫(kù),而MySQLi只支持MySQL,一但你掌握了就你可以隨心所欲的使用連接多種數(shù)據(jù)庫(kù)。

3)編程:PDO 連接數(shù)據(jù)庫(kù)

實(shí)例

<?php
/**
 * PDO PHP數(shù)據(jù)對(duì)象,是PHP操作所有數(shù)據(jù)庫(kù)的抽象層,提供了一個(gè)統(tǒng)一的訪問接口
 */

// 數(shù)據(jù)源:設(shè)置數(shù)據(jù)庫(kù)的類型,以及數(shù)據(jù)庫(kù)服務(wù)器和默認(rèn)的數(shù)據(jù)庫(kù)
$dsn = 'mysql:host=127.0.0.1; dbname=php';
//用戶名
$user = 'root';
//密碼
$pass = 'root';
//實(shí)例化PDO類,創(chuàng)建pdo對(duì)象,并完成了數(shù)據(jù)庫(kù)的連接
try {

    $pdo = new PDO($dsn, $user, $pass);
    echo '<h2>連接成功</h2>';

} catch (PDOException $e) {
    die('Connect ERROR! :'. $e->getMessage());
}

// 關(guān)閉連接
$pdo = null;

unset($pdo);

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

運(yùn)行效果圖:

hm2-1.png

4)編程:PDO新增數(shù)據(jù)

實(shí)例

<?php
/**
 * 新增記錄
 */

//連接數(shù)據(jù)庫(kù)
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

//準(zhǔn)備SQL語句,占位符我們不再用?,用"命名占位符"
$sql = "INSERT `user` SET `user_name`= :name , `email`= :email, `password`= sha1(:password)";

//創(chuàng)建預(yù)處理對(duì)象
$stmt = $pdo->prepare($sql);

//綁定參數(shù)
$data = ['name'=>'關(guān)羽','email'=>'gy@php.cn','password'=>'123'];
$stmt->bindParam(':name',$data['name'],PDO::PARAM_STR);
$stmt->bindParam(':email',$data['email'],PDO::PARAM_STR);
$stmt->bindParam(':password',$data['password'],PDO::PARAM_STR);

if ($stmt->execute()) {
    // rowCount(): 返回受影響的記錄數(shù)量
    echo '<h3>成功添加了'.$stmt->rowCount().'條記錄</h3>';
} else {
    echo '<h3>添加失敗</h3>';
    print_r($stmt->errorInfo());
    exit();
}

$stmt = null;
// 關(guān)閉連接
$pdo = null;

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

運(yùn)行效果圖:

hm2-2.png

5)編程: PDO更新數(shù)據(jù)

實(shí)例

<?php
/**
 * 更新記錄
 */

//連接數(shù)據(jù)庫(kù)
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

//準(zhǔn)備SQL語句,占位符我們不再用?,用"命名占位符"
$sql = "UPDATE `user` SET `email`= :email WHERE `user_id`= :id";

//創(chuàng)建預(yù)處理對(duì)象
$stmt = $pdo->prepare($sql);


$stmt->execute(['email'=>'yzf@qq.com','id'=>10]);
    echo '<h3>成功更新了'.$stmt->rowCount().'條記錄</h3>';


$stmt = null;
// 關(guān)閉連接
$pdo = null;

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

運(yùn)行效果圖:

hm2-3.png

6)編程: PDO 刪除數(shù)據(jù)

實(shí)例

<?php
/**
 * 刪除記錄
 */

//連接數(shù)據(jù)庫(kù)
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

//準(zhǔn)備SQL語句,占位符我們不再用?,用"命名占位符"
$sql = "DELETE FROM `user` WHERE `user_id`= :id";

//創(chuàng)建預(yù)處理對(duì)象
$stmt = $pdo->prepare($sql);


if ($stmt->execute(['id'=>10])) {
    // rowCount(): 返回受影響的記錄數(shù)量
    echo '<h3>成功刪除了'.$stmt->rowCount().'條記錄</h3>';
} else {
    echo '<h3>無刪除</h3>';
    print_r($stmt->errorInfo());
    exit();
}

$stmt = null;
// 關(guān)閉連接
$pdo = null;

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

運(yùn)行效果圖:

hm2-4.png

7)編程:PDO查詢數(shù)據(jù)

實(shí)例

<?php
/**
 * PDO 預(yù)處理查詢
 */

//連接數(shù)據(jù)庫(kù)
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');

//準(zhǔn)備SQL語句,占位符我們不再用?,用"命名占位符"
$sql = "SELECT `user_name`,`email`  FROM `user` WHERE `user_id` < :id";

//創(chuàng)建預(yù)處理對(duì)象
$stmt = $pdo->prepare($sql);

//執(zhí)行查詢
$stmt->execute(['id'=>5]);

//將結(jié)果集中的列綁定到變量上
$stmt->bindColumn('user_name', $name);
$stmt->bindColumn('email', $email);

//用列變量來遍歷結(jié)果集
while ($stmt->fetch(PDO::FETCH_BOUND)) {
    echo '姓名: '.$name.',  郵箱: '.$email.'<br>';
}

$stmt = null;
// 關(guān)閉連接
$pdo = null;

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

運(yùn)行效果圖:

hm2-5.png

8)問答:獲取結(jié)果集記錄數(shù)量的正確方式是什么?

答:設(shè)一個(gè)計(jì)數(shù)器,每次操作一次數(shù)據(jù)庫(kù)都統(tǒng)計(jì)一次。

總結(jié):PDO的好處是對(duì)與編程者來說實(shí)際使用的數(shù)據(jù)庫(kù)是透明的,便于移植代碼,雖然這樣的事情不是經(jīng)常發(fā)生。



批改狀態(tài):未批改

老師批語:
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)