正在加載....
廈門網站建設-世敏網絡科技
  • 當前位置: 首頁 > 建站百科 > 常見問題
  • PDO連接Mysql數據庫方法

    時間:2020-10-30 瀏覽量:

    1、什么是PDO?

     php data object ,php數據對象,PHP 數據對象 (PDO) 擴展為PHP操作多種數據庫定義了一個輕量級的一致接口。實現 PDO 接口的每個數據庫驅動可以公開具體數據庫的特性作為標準擴展功能。 注意利用 PDO 擴展自身并不能實現任何數據庫功能;必須使用一個 具體數據庫的 PDO 驅動 來訪問數據庫服務。

    PDO 提供了一個 數據訪問 抽象層,這意味著,不管使用哪種數據庫,都可以用相同的函數(方法)來查詢和獲取數據。 PDO 不提供 數據庫 抽象層;它不會重寫 SQL,也不會模擬缺失的特性。如果需要的話,應該使用一個成熟的抽象層。

    2、為什么要使用PDO?

    更換其他數據庫的時候無需更換代碼,提高了程序運行效率

    3、PDO的特點是什么?

    (1)、編碼的一致性    

    (2)、靈活性  

    (3)、面向對象特性   

    (4)、高性能

    使用PDO的好處是:從根本上防止SQL注入

    4、如何使用PDO?

    修改 php.ini中的配置  添加MYSQL的PDO擴展

    (1)  extension=php_pdo_mysql.dll   去前面的分號

    (2) 擴展目錄中要有相應的擴展文件

    (3) PDO連接不同的數據庫,要有不同的數據庫驅動文件即我們所加入配置文件的擴展

    (4) 重新啟動Apache使配置生效


      使用PDO連接Mysql數據庫實例:

    <?php
    header("content-type:text/html;charset=utf-8");
    define('DB_TYPE','mysql');//定義數據庫類型常量
    define('DB_HOST','127.0.0.1');//定義主機地址常量
    define('DB_PORT','3306');//定義連接數據庫端口號常量
    define('DB_CHARSET','utf8');//定義數據庫字符集常量
    define('DB_USER','root');//定義數據庫連接用戶名常量
    define('DB_PASS','root');//定義數據庫連接密碼常量
    define('DB_NAME','test');//定義數據庫名稱常量
    define('DB_DSN',DB_TYPE.':host='.DB_HOST.';port='.DB_PORT.';dbname='.DB_NAME.';charset='.DB_CHARSET);//定義DSN常量
    
    try{
    	$pdo = new PDO(DB_DSN,DB_USER,DB_PASS,[PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING]);
    	//設置sql語句查詢如果出現問題 就會拋出異常如下單獨設置也可以
    	//$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }catch(Exception $e){
    	echo $e->getMessage();
    }catch(Throwable $e){
    	echo $e->getMessage();
    }
    
    //查詢數據
    $state = $pdo->query("select * from admin_user where id = 1"); 
    //query執行一條SQL語句,如果通過,則返回一個PDOStatement對象,可以直接遍歷這個返回的記錄集 (query用于select)
    
    $res = $state->fetch(PDO::FETCH_ASSOC);      // 獲取結果集中的一行數據
    
    $res = $state->fetchAll(PDO::FETCH_ASSOC);  //獲取結果集中的所有數據
    
    //添加數據
     $row1 = $pdo->exec("insert into admin_user(user_name, password) values('jack', 'adsfadf')"); 
    //exec主要執行沒有返回結果集的操作 PDO::exec執行一條SQL語句,
    //并返回受影響的行數。此函數不會返回結果集合.。 
    //(exec用于insert、delete、update)
    
    //修改數據
    $row2 = $pdo->exec("update admin_user set user_name = 'peter' where user_id = 50");
    
    //刪除數據
    $row3 = $pdo->exec("delete from  admin_user where user_id = 50");        
    var_dump($res,$row1,$row2,$row3);
    
    //預處理(防止SQL注入)
    $state = $pdo->prepare("select * from tp_admin_user where user_id = ?");           
    $state->execute([2]); //綁定參數          
    $row = $state->fetch(PDO::FETCH_ASSOC); // 獲取結果集中的一條
    $rows = $state->fetchAll(PDO::FETCH_ASSOC); // 獲取結果集中的所有
    echo "<pre>";          
    var_dump($rows);
    ?>


    加載中~
    加載中~

    您已成功復制微信號,去微信立即添加好友!

    點擊下方復制按鈕,復制微信號!

    jzm866081

    http://www.523235.tw
    廈門世敏網絡科技有限公司

    點擊這里給我發消息
    嘿!有什么能幫到您的嗎?
    (^ω^)MG星尘怎么玩 福彩开奖272 足彩任选9场奖金17168 pk10快乐赛车计划 七乐彩走势图表近50期带坐标 新疆11选5走势图表一定牛 比特币交易平台排名 上海麻将有哪些打法 福建时时彩开奖11选5 幸运快三开奖结果大数据 OG真人官方首页 澳洲幸运5规律 福彩中奖规则 北京pk10官方正品网站 000848股票分析 欢乐捕鱼人攻略 天津麻将玩法