Доступные версии документации

Linter PDO-интерфейс

Назначение

PDO-интерфейс (PHP Data Objects) представляет собой расширение для языка PHP, позволяющее разработчику иметь простой и удобный интерфейс для доступа к БД из PHP-скриптов. PDO-интерфейс реализован в виде 3-х классов (PDO, PDOStatement и PDOException), которые обеспечивают абстрактный (т. е. независимый от конкретной СУБД) доступ к БД. Работа этих классов с разными СУБД обеспечивается за счет подключения pdo-драйвера конкретных СУБД, которые интерпретируют команды PDO в команды той или иной СУБД. В целом, принцип работы PDO-интерфейса схож с принципом работы DBX- и ODBC-интерфейсов.

Использование в среде ОС Windows

Для настройки PDO-интерфейса СУБД ЛИНТЕР в среде ОС Windows:

  1. поместить интерфейсные библиотеки (php_pdo.dll и php_pdo_linter.dll) в каталог, в котором PHP ищет загружаемые ресурсы.

    Для того чтобы найти место, куда поместить PDO-интерфейс, необходимо:

    • открыть конфигурационный файл <WINSYS32DIR>/php.ini (этот файл может располагаться и в другом каталоге. Определить точный путь к файлу можно так, как указано в разделе конфигурирования PHP-интерфейса для ОС UNIX);

    • найти в нем строку extension_dir=...

    Если в ней уже задан какой-либо каталог – скопировать php_pdo.dll и php_pdo_linter.dll в этот каталог. Если нет – убрать комментарий в строке и прописать в ней путь к каталогу, где находятся данные библиотеки.

  2. если необходимо, чтобы интерфейс всегда автоматически подгружалась при исполнении любой PHP-программы, в разделе Extensions добавить строки:

    extension=php_pdo.dll
    extension=php_pdo_linter.dll
  3. перезапустить Web-сервер (если PHP используется для WEB-приложения).

PDOException-класс исключений

Класс исключений PDO-интерфейса является потомком PHP-класса Exception. См. раздел «Исключения» («Exceptions») документации к PHP для более подробной информации о работе с данным классом.

Пример PHP-скрипта с использованием PDO-интерфейса

<?php
$dbh = new PDO("linter:node=;dbname=DEMO","SYSTEM","MANAGER");

$dbh->exec('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, val VARCHAR(10), val2 VARCHAR(16))');

$select = $dbh->prepare('SELECT COUNT(id) FROM test');

$data = array(
    array('10', 'Abc', 'zxy'),
    array('20', 'Def', 'wvu'),
    array('30', 'Ghi', 'tsr'),
    array('40', 'Jkl', 'qpo'),
    array('50', 'Mno', 'nml'),
    array('60', 'Pqr', 'kji'),
);

// Insert using question mark placeholders
$stmt = $dbh->prepare("INSERT INTO test VALUES(?, ?, ?)");

foreach ($data as $row) {
    $stmt->execute($row);
}
$select->execute();
$num = $select->fetchColumn();
echo 'There are ' . $num . " rows in the table.\n";

$select->closeCursor();

// Insert using named parameters
$stmt2 = $dbh->prepare("INSERT INTO test VALUES(:first, :second, :third)");
foreach ($data as $row) {
    $stmt2->execute(array(':first'=>($row[0] + 5), ':second'=>$row[1],
        ':third'=>$row[2]));
}

$select->execute();
$num = $select->fetchColumn();
echo 'There are ' . $num . " rows in the table.\n";
$dbh = null;
?>
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter