• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發php教程 → php函數仿pdo操作mysql數據庫類

    php函數仿pdo操作mysql數據庫類

    相關軟件相關文章發表評論 來源:lvhaipeng時間:2011/12/12 0:45:56字體大?。?em class="fontsize">A-A+

    作者:lvhaipeng點擊:159次評論:0次標簽: php

    • 類型:服務器區大?。?i>21M語言:中文 評分:7.5
    • 標簽:
    立即下載

    PDO顯然將成為php的標準數據庫操作方式。雖然國內的很多php空間或主機都已支持php5.2以上的版本了,但由于普及和技術上的原因還是有部分不支持pdo的。

    由于從今年開始 哈爾濱智華軟件的php課程在數據庫操作的學習改為以pdo為主(當然課程在學習和最后實訓時還是有mySQL函數操作數據庫訓練的),在實際開發中,我的學生不可避免的遇到了 采用pdo開發的程序,在程序實施時卻發現服務器不支持pdo,好在都是客戶的服務器,重新升級安裝了一下php的新版本就解決了。

    但這樣卻提出了一個問題?
    要么開發用mySQL函數方式,
    要么開發用pdo而后升級php版本,
    要么發現用pdo開發無法升級php版本,用mySQL函數方式重寫原有pdo方式代碼

    看來開發用開發用mySQL函數方式 似乎又成了最好的解決辦法,這不又回到起始點,難道非要等到pdo都普及了再用 pdo開發么,如果這樣 就意味著我的php課程將教授學生一個已經開始淘汰的開發方式,學生學習完以后,幾年內又要不得不放棄已經習慣的mySQL函數開發方式,再適應新的pdo開發方式。

    有沒有一個折中方案,既可以讓學生學到新的pdo開發方式,在工作中又可以應對老得mySQL函數開發方式呢?那天學生問起 忽發奇想寫個類,類的方法都是pdo的方式,然后將mySQL函數的操作 都封裝到 這個類的方法里不就可以了么。

    解決初衷 是開發是都采用pdo方式操作,如果需要mySQL函數方式 只要將連庫的文件替換成mySQL函數連庫代碼,然后在后邊加上這個類 并實例化對象為pdo的那個操作對象不就可以實現pdo方式改為mySQL函數方式了

    pdo的增刪改都一樣的,代碼如下:

    <?php   

    require "./connDB.php" ;  

    require ’./Deep.Class.MySQLfunction4PDO.php’;  

    $db = new Deep_MySQLfunction4PDO();  

    $sql="insert into guestbook(guestName,guestDatetime)values(’lvhaipeng zhihuasoft".mt_rand(1,100)." ’,’".date(’Y-m-d H:i:s’)."’)";  

    //2 exec方法   

    $count = $db->exec($sql);  

    echo $count;  

    ?>  

    查詢代碼如下:

    view plaincopy to clipboardprint?

    <?php  

    require ’./connDB.php’;  

    require ’./Deep.Class.MySQLfunction4PDO.php’;  

    $db = new Deep_MySQLfunction4PDO();  

    //2 query查詢   

    $stmt = $db->query("SELECT * FROM guestbook" );   

    // 1條記錄   

    // $row =$stmt->fetch();   

    //echo $row[’guestName’],"<br />";   

    while($row = $stmt->fetch())  

    {  

    echo $row[’guestName’],"<br />";  

    }  

    ?>  

    大家會發現我在連庫文件后 ,添加了2行代碼(當然工作時將這兩行寫在連庫文件里剛好了)

    require ’./Deep.Class.MySQLfunction4PDO.php’;  

    $db = new Deep_MySQLfunction4PDO();  

    require ’./Deep.Class.MySQLfunction4PDO.php’;$db = new Deep_MySQLfunction4PDO();


    這樣通過 Deep_MySQLfunction4PDO類我就實現了不用更改現有的pdo代碼,實現MySQL函數方式的操作了

    Deep_MySQLfunction4PDO類文件代碼如下:

    view plaincopy to clipboardprint?

    <?php  

    /* 

    模仿pdo方式的一個mysql函數的操作類。 

    調用:在mysql連庫函數后調用 

    require ’./Deep.Class.MySQLfunction4PDO.php’; 

    $db = new Deep_MySQLfunction4PDO(); 

    */  

    // 仿 PDO class   

    class Deep_MySQLfunction4PDO{  

    //插入 刪除 修改    

    public function exec($sql){  

    @mysql_query( $sql ) or die("SQL語句執行錯誤!");  

    return mysql_affected_rows();  

    }  

    //查詢   

    public function query($sql){  

    $stmt=new Deep_MySQLfunction4PDO_stmt();  

    $stmt->query=@mysql_query( $sql ) or die("SQL語句執行錯誤!");  

    return $stmt;  

    }  

    }  

    // 仿 PDOStatement class   

    class Deep_MySQLfunction4PDO_stmt{  

    var $query;  

    public function fetch(){  

    return mysql_fetch_array($this->query);  

    }  

    }  

    ?>  

    前一段時間課程比較多 今日周末有空 整理記錄如上, 又有學生提出 仿pdo的類遇到查詢 不用這個while($row =$stmt->fetch())用foreach( $stmt as $row)不行 我這改了改這個類實現了,這是那個代碼寫法有些古怪 待我有空再 整理 做這篇文章的后續說明吧

      相關評論

      閱讀本文后您有什么感想? 已有人給出評價!

      • 8 喜歡喜歡
      • 3 頂
      • 1 難過難過
      • 5 囧
      • 3 圍觀圍觀
      • 2 無聊無聊

      熱門評論

      最新評論

      發表評論 查看所有評論(0)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>