PHP PDO


Pelanjutan PHP Data Objects (PDO) mentakrifkan antara muka yang ringan dan konsisten untuk PHP mengakses pangkalan data.

PDO menyediakan lapisan abstraksi capaian data, yang bermaksud tidak kira pangkalan data mana yang digunakan, fungsi (kaedah) yang sama boleh digunakan untuk membuat pertanyaan dan mendapatkan data.

PDO dikeluarkan dengan PHP5.1 dan juga boleh digunakan dalam sambungan PECL PHP5.0 Ia tidak boleh dijalankan pada versi PHP sebelumnya.


Pemasangan PDO

Anda boleh menyemak sama ada sambungan PDO dipasang melalui fungsi phpinfo() PHP.

Memasang PDO pada sistem Unix

Pada Unix atau Linux anda perlu menambah sambungan berikut:

extension=pdo.so

Pengguna Windows

PDO dan semua Pemacu utama adalah diedarkan dengan PHP sebagai sambungan kongsi Untuk mengaktifkannya, cuma edit fail php.ini dan tambah sambungan berikut:

extension=php_pdo.dll
Selain itu, terdapat pelbagai sambungan pangkalan data yang sepadan dengan yang berikut:
;extension=php_pdo_firebird.dll
;extension=php_pdo_informix.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll

Dalam Selepas menetapkan konfigurasi ini , kita perlu memulakan semula PHP atau pelayan web.

Seterusnya mari kita lihat contoh khusus Berikut ialah contoh penggunaan PDO untuk menyambung ke pangkalan data MySql:

<?php
$dbms='mysql';     //数据库类型
$host='localhost'; //数据库主机名
$dbName='test';    //使用的数据库
$user='root';      //数据库连接用户名
$pass='';          //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";


try {
    $dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象
    echo "连接成功<br/>";
    /*你还可以进行一次搜索操作
    foreach ($dbh->query('SELECT * from FOO') as $row) {
        print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
    }
    */
    $dbh = null;
} catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>");
}
//默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));

?>

Seterusnya, mari kita lihat secara spesifik Penerangan PHP PDO:

  • Pemalar yang dipratentukan

  • Pengurusan sambungan PHP PDO

  • PHP Transaksi PDO dan penyerahan automatik

  • PHP PDO menyediakan penyata dan prosedur tersimpan

  • Ralat PHP PDO dan pengendalian ralat

  • Objek Besar (LOB) PHP PDO

  • Kelas PDO:

    • PDO::beginTransaction — Mula transaksi

    • PDO::commit — Lakukan transaksi

    • PDO::__construct — Buat contoh PDO yang mewakili sambungan pangkalan data

    • PDO::errorCode — Dapatkan SQLSTATE yang berkaitan dengan operasi terakhir pemegang pangkalan data

    • PDO::errorInfo — Kembalikan maklumat ralat bagi operasi terakhir pada pangkalan data

    • PDO::exec — Jalankan pernyataan SQL dan kembalikan bilangan baris yang terjejas

    • PDO::getAttribute — Dapatkan semula atribut sambungan pangkalan data

    • PDO::getAvailableDrivers — Mengembalikan susunan pemacu yang tersedia

    • PDO::inTransaction — Memeriksa sama ada dalam transaksi

    • PDO::lastInsertId — Mengembalikan ID atau nilai jujukan baris terakhir yang dimasukkan

    • PDO::prepare — Sediakan pernyataan SQL untuk dilaksanakan dan mengembalikan objek PDOStatement

    • PDO::query — melaksanakan pernyataan SQL dan mengembalikan objek PDOStatement, yang boleh difahami sebagai set hasil

    • PDO::quote — ialah pernyataan SQL Tambah petikan pada rentetan.

    • PDO::rollBack — Putar balik transaksi

    • PDO::setAttribute — Tetapkan atribut

  • Kelas PDOStatement:

    • PDOStatement::bindColumn — Ikat lajur pada pembolehubah PHP

    • PDOStatement::bindParam — Ikat parameter pada nama pembolehubah yang ditentukan

    • PDOStatement::bindValue — Ikat nilai pada parameter

    • PDOStatement::closeCursor — Tutup kursor supaya pernyataan itu boleh dilaksanakan semula.

    • PDOStatement::columnCount — Mengembalikan bilangan lajur dalam set hasil

    • PDOStatement::debugDumpParams — Mencetak arahan prapemprosesan SQL

    • PDOStatement::errorCode — Dapatkan SQLSTATE yang berkaitan dengan operasi pemegang pernyataan terakhir

    • PDOStatement::errorInfo — Dapatkan sambungan yang berkaitan dengan pernyataan terakhir kendalikan operasi Mesej ralat

    • PDOStatement::execute — Laksanakan pernyataan yang disediakan

    • PDOStatement::fetch — Dapatkan baris seterusnya daripada set hasil

    • PDOStatement::fetchAll — Mengembalikan tatasusunan yang mengandungi semua baris dalam set hasil

    • PDOStatement::fetchColumn — Mengembalikan satu lajur daripada baris seterusnya dalam set hasil .

    • PDOStatement::fetchObject — Mendapat baris seterusnya dan mengembalikannya sebagai objek.

    • PDOStatement::getAttribute — Dapatkan atribut pernyataan

    • PDOStatement::getColumnMeta — Kembalikan metadata untuk lajur dalam set hasil

    • PDOStatement::nextRowset — Maju ke set baris seterusnya dalam pemegang pernyataan multi-rowset

    • PDOStatement::rowCount — Mengembalikan dipengaruhi oleh pernyataan SQL sebelumnya Bilangan baris

    • PDOStatement::setAttribute — Tetapkan atribut pernyataan

    • PDOStatement::setFetchMode — Tetapkan mod pengambilan lalai untuk pernyataan.