//Сначала подключаемся к базе данных MySQL
$dbh = новый PDO('mysql:host=localhost;dbname=test', $user, $pass);
//Если вы хотите подключиться к mssql:
//mssql:host=localhost;dbname=testdb
//Подключаемся к pgsql:
//pgsql:host=localhost port=5432 имя_базы=testdb user=bruce пароль=mypass
//Подключаемся к odbc(DSN)
//odbc:testdb
//Равный доступ:
//odbc:Driver={Драйвер Microsoft Access (*.mdb)};Dbq=C:\db.mdb;Uid=Admin
//Также есть oracle, sqlite, db2....
//Выполняем запрос
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //Этот результат аналогичен mysql_fetch_array. PDOStatement::setFetchMode можно настроить.
}
//Также:
$sth = $dbh->prepare("ВЫБЕРИТЕ имя, цвет ИЗ фруктов");
$sth->execute();
//Читаем весь набор записей в массив:
$result = $sth->fetchAll();
print_r ($ результат);
//Выход:
Множество
(
[0] => Массив
(
[ИМЯ] => груша
[0] => груша
[ЦВЕТ] => зеленый
[1] => зеленый
)
[1] => Массив
(
[ИМЯ] => арбуз
[0] => арбуз
[ЦВЕТ] => розовый
[1] => розовый
)
)
//Вставка/удаление/обновление данных:
$count = $dbh->exec("УДАЛЕНИЕ ИЗ фруктов WHERE color = 'red'");
//$count — количество удаленных элементов. Эквивалент mysql_affected_rows
//Вы также можете использовать PDOStatement::rowCount
//Я забыл, какую базу данных я использовал. . . .
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo "Выполняется на MySQL; здесь выполняются какие-то действия, специфичные для MySQLn";
}
//Mysql_escape_string раньше использовалась при вставке данных, теперь?
print "Строка без кавычек: $stringn";
print "Строка в кавычках: " $conn->quote($string) "n";
//получать:
Строка без кавычек: Хорошо
Строка в кавычках: «Хорошо»
//Видите, даже кавычки теперь добавляются автоматически. . . .
//Обратите внимание, что результаты в разных базах данных различны, например, некоторые ' => '', некоторые ' => ', => \
//Теперь не беспокойтесь, полностью автоматически.
//Наконец-то мне нужно его закрыть
$конн = ноль;
//но! Вы можете оставаться на связи:
$dbh = новый PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO_ATTR_PERSISTENT => true));
//Очень просто, не так ли?
Приложение: Очень простой специальный метод вызова:
$stmt = $dbh->prepare("ВЫБРАТЬ * ИЗ РЕГИСТРАЦИИ, где имя =?");
if ($stmt->execute(array($_GET['name']))) { //Чего ты боишься? Автоматическая цитата!
while ($row = $stmt->fetch()) {
print_r ($ строка);
}
}
Также:
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
Где я могу найти такую хорошую функцию? php5.1 и выше — в расширении, php5 — в pecl, php4 Не думайте об этом, нет.