Выполнение запроса к БД
//MySQL mysql_connect('localhost', 'vasya', 'parol'); mysql_select_db('users'); $result = mysql_query($sql); //SQLite $dbh = sqlite_open('/path/to/users.db'); $result = sqlite_query($sql, $dbh); //PostgreSQL pg_connect("host=localhost dbname=users user=vasya password=parol"); $result = pg_query($sql); //PDO $conn = new PDO($conn, $user, $password); $result = $conn->exec($sql);
exec ($sql) возвращает количество строк, над которыми было произведено действие.
Выборка данных из БД
//стандартный запрос $sql = 'SELECT name FROM users ORDER BY name'; //MySQL mysql_connect('localhost', 'vasya', 'parol'); mysql_select_db('users'); $result = mysql_query($sql); //SQLite $dbh = sqlite_open('/path/to/users.db'); $result = sqlite_query($sql, $dbh); //PostgreSQL pg_connect("host=localhost dbname=users user=vasya password=parol"); $result = pg_query($sql); //PDO $conn = new PDO($conn, $user, $password); $result = $conn->query($sql);
Как видим, при использовании PDO всего одна строка запроса.
Фильтрация строк
Перед записью информации в базу данных, эту инфу надо отфильтровать. Смотрим, как это сделать в разных БД и с использованием PDO:
SELECT * FROM users WHERE name='$name' $name = $_POST['name']; //MySQL $name = mysql_real_escape_string($name); //SQLite $name = sqlite_escape_string($name); //PostgreSQL $name = pg_escape_string($name); //PDO $name = $conn->quote($name); $result = $conn->query("SELECT * FROM users WHERE name='$name'");
В PDO всего одна строка — quote. По сути, quote, в зависимости от базы данных, захватит в себя (и выполнит) весь код (например, строку №4 или №6 или №8, смотря какая база используется).