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.dllSelain 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.