W celu nawiązania połączenia z bazą danych możesz użyć funkcji connect(), która wymaga prawidłowego DSN jako pierwszego parametru wywołania. Parametr ten może być łańcuchem tekstowym lub tablicą. Jeżeli użyjesz tablicy, zostanie ona połączona z tablicą zawierającą domyślne informacje:
$dsn = array( 'phptype' => false, 'dbsyntax' => false, 'username' => false, 'password' => false, 'protocol' => false, 'hostspec' => false, 'port' => false, 'socket' => false, 'database' => false, );
Jeżeli ustawisz którykolwiek z elementów nadpiszesz domyślną wartość a pozostałe elementy zachowają domyślne wartości.
Drugi parametr, $options
, jest opcjonalną
tablicą która może zawierać dodatkowe ustawienia konfiguracyjne tego pakietu.
Zobacz
setOption() aby uzyskać więcej informacji na ten temat.
W przypadku powodzenia otrzymasz nową instancję klasy bazy danych. Zalecane jest sprawdzenie wyniku metody przy pomocy isError().
Aby rozłączyć się z bazą użyj metody disconnect() z instancji klasy bazy danych.
Połączenie i rozłączenie
<?php
require_once 'DB.php';
$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$options = array(
'debug' => 2,
'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
// ...
$db->disconnect();
?>
Połączenie z bazą używając tablicy jako informacji DSN
<?php
require_once 'DB.php';
$dsn = array(
'phptype' => 'pgsql',
'username' => 'someuser',
'password' => 'apasswd',
'hostspec' => 'localhost',
'database' => 'thedb',
);
$options = array(
'debug' => 2,
'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
?>
Gdy łączysz się do SQLite używając tablicy DSN, wartość
elementu mode
musi być łańcuchem tekstowym:
<?php
$dsn = array(
'phptype' => 'sqlite',
'database' => 'thedb',
'mode' => '0644',
);
?>
Połączenie z MySQLi poprzez SSL używając tablicy informacji DSN
Element ssl
tablicy
$options
musi być ustawiony na
TRUE aby SSL działało. Każdy z dodatkowych
elementów tablicy $dsn
(od key
do cipher
w poniższym przykładzie) jest opcjonalny.
<?php
require_once 'DB.php';
$dsn = array(
'phptype' => 'mysqli',
'username' => 'someuser',
'password' => 'apasswd',
'hostspec' => 'localhost',
'database' => 'thedb',
'key' => 'client-key.pem',
'cert' => 'client-cert.pem',
'ca' => 'cacert.pem',
'capath' => '/path/to/ca/dir',
'cipher' => 'AES',
);
$options = array(
'ssl' => true,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
?>
Połączenie z bazą PostgreSQL poprzez gniazdo
<?php
require_once 'DB.php';
$dsn = 'pgsql://someuser:apasswd@unix(/tmp)/thedb';
$options = array(
'debug' => 2,
'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
?>