PDO 連接各類資料庫時,DSN (Data Source Name) 格式各異。本文彙整主流資料庫的標準 DSN 寫法,供快速查閱複製。
| 資料庫 | DSN 範例 |
|---|---|
| MySQL (TCP) | mysql:host=localhost;port=3307;dbname=testdb |
| MySQL (Socket) | mysql:unix_socket=/tmp/mysql.sock;dbname=testdb |
| PostgreSQL | pgsql:host=localhost port=5432 dbname=testdb user=bruce password=mypass |
| SQLite 3 (檔案) | sqlite:/opt/databases/mydb.sq3 |
| SQLite 3 (記憶體) | sqlite::memory: |
| SQLite 2 | sqlite2:/opt/databases/mydb.sq2 / sqlite2::memory |
| Oracle (OCI) | oci:dbname=//localhost:1521/mydb |
| SQL Server (dblib) | dblib:host=localhost;dbname=testdb |
| SQL Server (mssql) | mssql:host=localhost;dbname=testdb |
| Sybase | sybase:host=localhost;dbname=testdb |
| Firebird | firebird:User=john;Password=mypass;Database=DATABASE.GDE;DataSource=localhost;Port=3050 |
| IBM DB2 (ODBC) | odbc:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=db;HOSTNAME=host;PORT=port;PROTOCOL=TCPIP;UID=user;PWD=pass |
| Informix | informix:host=host.domain.com;service=9800;database=db;server=ids_server;protocol=onsoctcp;EnableScrollableCursors=1 |
| ODBC (通用) | odbc:testdb 或完整 DRIVER 字串 |
| MS Access | odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin |
更多 PDO 進階技巧請見專題:《PHP基於pdo操作數據庫技巧總結》、《php+mysql數據庫操作入門教程》等。