作者 主題: 分享PEAR::DB使用---part1  (閱讀 9389 次)

0 會員 與 1 訪客 正在閱讀本文。

ricky

  • 實習板主
  • 鑽研的研究生
  • *****
  • 文章數: 669
    • 檢視個人資料
    • Ricky 碎碎唸
分享PEAR::DB使用---part1
« 於: 2005-06-17 11:14 »
這邊就分享一下PEAR :: DB的使用方式吧
在連線資料庫之前得先提一下DSN
Data Source Name -- 資料來源名稱
PEAR :: DB提供了一個與資料庫獨立的連結介面
如何建立與資料庫的連結靠的就是DSN了
DSN描述如下
dbsyntax://username:password@protocol+hostspec/database?option=value
dbsyntax表示資料庫的類型
以下是目前PEAR :: DB支援的資料庫類型
    dbase  -> dBase
    fbsql  -> FrontBase (functional since DB 1.7.0)
    ibase  -> InterBase (functional since DB 1.7.0)
    ifx    -> Informix
    msql   -> Mini SQL (functional since DB 1.7.0)
    mssql  -> Microsoft SQL Server (NOT for Sybase. Compile PHP --with-mssql)
    mysql  -> MySQL (for MySQL <= 4.0)
    mysqli -> MySQL (for MySQL >= 4.1) (requires PHP 5) (since DB 1.6.3)
    oci8   -> Oracle 7/8/9
    odbc   -> ODBC (Open Database Connectivity)
    pgsql  -> PostgreSQL
    sqlite -> SQLite
    sybase -> Sybase

username:password指的就是資料庫的帳號密碼
例如
帳號:ricky
密碼:rickyspassword
就是ricky:rickyspassword
如果密碼中含有一些特殊的字元例如:+?()請先使用urlencode函數編碼過
protocol+hostspec/database
指的就是連線的協定以及資料庫名稱例如使用的是tcp還是unix socket
這邊我們就以常見的mysql來介紹
所以mysql的DSN就是這樣設定
mysql:://ricky:rickyspassword@localhost/mydb
底下附上一些從pear上擷錄的連線範例
 
    Example 32-1. Connect to database through a socket

    mysql://user@unix(/path/to/socket)/pear
     
     
    Example 32-2. Connect to database on a non standard port

    pgsql://user:pass@tcp(localhost:5555)/pear
     
     
    Example 32-3. Connect to SQLite on a Unix machine using options

    sqlite:////full/unix/path/to/file.db?mode=0666
     
     
    Example 32-4. Connect to SQLite on a Windows machine using options

    sqlite:///c:/full/windows/path/to/file.db?mode=0666
     
     
    Example 32-5. Connect to MySQLi using SSL

    mysqli://user:pass@localhost/pear?key=client-key.pem&cert=client-cert.pem
     
     
    Example 32-6. Connecting to MS Access sometimes requires admin as the user name

    odbc(access)://admin@/datasourcename
     
     
    Example 32-7. Connecting to ODBC with a specific cursor

    odbc(access)://admin@/datasourcename?cursor=SQL_CUR_USE_ODBC

接著就開始連線的第一步嘍
    <?php
    require_once('DB.php'); //預設pear的路徑應該已經包含進去了
    $DSN="....."; //請自行設定DSN
    $dbObj=& DB::connect($DSN);
    if (PEAR::isError($dbObj))  die($dbObj->getMessage());
    $dbObj->disconnect(); //別忘了程式結束後要資源回收喔
    ?>

這樣就建立起DB連線物件$dbObj了
此外DSN也可以使用array的方式
像這樣
    $DSN = array(
        'phptype'  => 'mysql',
        'username' => 'ricky',
        'password' => 'rickyspassword',
        'hostspec' => 'localhost',
        'database' => 'mydb',
    );

待續...
我的symfony作品:YOMOpets 寵物誌
有興趣可以一起來討論symfony喔
我的部落格:http://ricky.ez2.us/

lschang

  • 懷疑的國中生
  • **
  • 文章數: 82
    • 檢視個人資料
分享PEAR::DB使用---part1
« 回覆 #1 於: 2005-06-22 18:40 »
$dbObj=& DB::connect($DSN);

請問 上式中  =&  的用法 意義

因我一般 $dbObj= DB::connect($DSN);

有何不同