Профессиональное программирование на PHP

Страница 57 из 591


60 Глава 2 Объектно-ориентированное программирование...

нииВГпТ,М СЛУЧМСТОД РГеРЭГе (] П°ЧТИ НИЧСГО Не делает: °н ПР°СТ° на основании запроса инициализирует объект класса DB_MysqlStatement. Реальная работа выполняется в классе DB_MysqiStatement. Если bind-параметры отсЗуГ то можно просто вызвать такой код: и«.у«.твуют,

ISmt = ^bhDB-MySql(';teStUSer"' "^stpass", "localhost", "testdb"). $stmt = $dbh->prepare("SELECT *

FROM users

$stmt-execute (); ШЕ*Е = ' " •mys<31-escaPe_string ($name)......),

ue^";■ ""«рыт от использования класса-оболочки вместо собственных процедурных вызовов появляется, когда требуется присвоить запросу параметры Для

ГдвоеГчиЬя?Т СДСЛаТЬ' МОЖН° ВВССТИ В 3аПР°С —аполнители, начинающиеся с двоеточия (:), и присвоить им значения во время выполнения.

ISSt = ^bbDB-MySql(';teStUSer"' "testpass", "localhost", "testdb"). $stmt = $dbh->Prepare("SELECT * FROM users WHERE name = i-)? $stmt->execute($name); "

Метка-заполнитель :l в запросе представляет собой позицию первой bind-переменнои. Когда будет вызван метод execute () объекта $stmt, данны£метод 2-

зГчТнГГзГ'ТТ аНаЛИЗ СВОеГ°« аР1еНта' ПР™ -рвой Ыпб-переменнои значение ($name), добавит символы обратной косой черты и кавычки, а затем подменит им в запросе первую метку-заполнитель bind :1 затем подме-

инт^Г-НеСМОТРЯ На Т°' ЧТ° таК°Й Ь1п<1-ин^рфейс не дает обычного для bind-интерфеиса выигрыша производительности, он предоставляет удобный способ автоматически экранировать все входные данные запроса.

Проект Template

Проект Template (шаблон) описывает класс, который модифицирует логику подкласса так, чтобы сделать его завершенным, рует логику под

Проект Template можно использовать для того, чтобы в предыдущих классах скрыть от пользователя все специфические для базы данных параметрь^оеди'ени? ^обы использовать класс из предшествующего раздела, необходимо постоянно указывать параметры соединения: <?РНР

require_once ■DB.inc',•

define(1DB_MYSQL_PROD_USER1, ■test')• define(1DB_MYSQL_PROD_PASS■ ■test')' define('DB_MYSQL_PROD_DBHOST1, 'localhost1)• define(1DB_MYSQL_PROD_DBNAME', 1 test');

$dbh = new DB::Mysql(DB_MYSQL_PROD_USER, DB_MYSQL_PROD PASS

4=.-™.- .^u DB_MYSQL PROD DBHOST, DB MYSQL PROD DBNAME) •

$stmt = $dbh->execute( "SELECT now()")- ~ _r^_UB™isj ,

print_r($stmt->fetch row()); ?>



  • Стоимость вентфасад.

  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006