
Рабочая тетрадь(4)
.pdf
MySQL
mysql_connect('host', 'user', 'password');
mysql_select_db('db');
PostgreSQL
pg_connect("host=$host dbname=$db user=$user
password=$password");
SQLite
$db = sqlite_open("db", 0666);

MySQL
$db = new PDO('mysql:host=host;dbname=db',
$user, $pass);
PostgreSQL
$db = new PDO('pgsql:host=host;dbname=db',
$user, $pass);
SQLite
$db = new PDO('sqlite:db');
Постоянное соединение
$db = new PDO('mysql:host=host;dbname=test',
$user, $pass, array( PDO::ATTR_PERSISTENT => true));

MySQL
("mysql:host=hostname;dbname=mysql", "username", "password")
SQLite
("sqlite:/path/to/database.db") или ("sqlite::memory:")
PostgreSQL
("pgsql:dbname=pdo;host=hostname", "username", "password" )
Oracle
("OCI:dbname=mydatabase;charset=UTF-8", "username", "password")
ODBC
("odbc:Driver={Microsoft Access Driver
(*.mdb)};Dbq=C:\database.mdb;Uid=Admin")
Firebird
("firebird:dbname=hostname:C:\path\to\database.fdb", "username", "password")
Informix
("informix:DSN=InformixDB", "username", "password")
DBLIB
("dblib:host=hostname:port;dbname=mydb","username","password")

Файл config.ini
db.conn = "mysql:host=localhost;dbname=test"
db.user = "vasya"
db.pass = "parol"
Загрузка конфигурационного файла
$params = parse_ini_file('config.ini');
Соединение с СУБД
$db = new PDO($params['db.conn'],
$params['db.user'], $params['db.pass']);

$sql = "INSERT INTO users(name, email) VALUES('john', 'john@smith.com')";
MySQL
mysql_connect('host', 'user', 'password');
mysql_select_db('db');
$result = mysql_query($sql);
PostgreSQL
pg_connect("host=$host dbname=$db user=$user
password=$password");
$result = pg_query($sql);
SQLite
$db = sqlite_open("db");
$result = sqlite_query($sql, $db);

$sql = "INSERT INTO users(name, email) VALUES('john', 'john@smith.com')";
MySQL, PostgreSQL, SQLite…
$db = new PDO($params['db.conn'],
$params['db.user'], $params['db.pass']);
$result = $db->exec($sql);
Ошибки проверять как:
if($result === false)
die('ERROR');

$name = $_POST["user"];
MySQL
$name = mysql_real_escape_string($name);
PostgreSQL
$name = pg_escape_string($name);
SQLite
$name = sqlite_escape_string($name);
$sql = "INSERT INTO users(name)
VALUES('$name')";

$name = $_POST["user"];
MySQL, PostgreSQL, SQLite…
$db = new PDO($params['db.conn'],
$params['db.user'], $params['db.pass']);
$name = $db->quote($name);
$sql = "INSERT INTO users(name)
VALUES($name)";

$sql = "SELECT id, name FROM users";
MySQL
mysql_connect('host', 'user', 'password');
mysql_select_db('db');
$result = mysql_query($sql);
PostgreSQL
pg_connect("host=$host dbname=$db user=$user
password=$password");
$result = pg_query($sql);
SQLite
$db = sqlite_open("db");
$result = sqlite_query($sql, $db);

$sql = "SELECT id, name FROM users";
MySQL, PostgreSQL, SQLite…
$db = new PDO($params['db.conn'],
$params['db.user'], $params['db.pass']);
$result = $db->query($sql);
Если возвращается false
$db->query($sql) or
die('ERROR');