PDO Подготовленные выражения и хранимые процедуры. - PDO Подготовленные выражения и хранимые процедуры. стр-2
| Индекс материала |
|---|
| PDO Подготовленные выражения и хранимые процедуры. |
| Хранимые процедуры |
| Все страницы |
Если драйвер базы данных поддерживает, то запрос может также связывать IN и OUT параметры. Параметры OUT обычно используются, чтобы получить данные из хранимых процедур. Выходные параметры OUT чуть более сложнее, в использовании чем входные параметры IN. Разработчик должен знать, насколько большое значение может принять данный параметр. Если значение, оказывается, больше чем указано, произойдёт ошибка.
Вызов хранимой процедуры с параметром OUT:
$stmt = $dbh->prepare( 'CALL sp_returns_string(?)' ); // Здесь четвёртым параметром указывается макс. величина, которую // может принять параметр: $stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); // Выполнение хранимой процедуры: $stmt->execute(); echo "procedure returned $return_value\n";
Разработчики могут также определить параметры, которые являются INOUT. Синтаксис подобен, привязке IN и OUT параметров. В следующем примере строку «привет» мы передадим в хранимую процедуру параметром INOUT, и когда он же вернётся, значение «привет» заменится возвращаемым значением процедуры:
Вызов хранимой процедуры с параметром INOUT:
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = "hello";
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);
// Выполнение хранимой процедуры:
$stmt->execute();
print "procedure returned".$value;
Не правильное использование плейсхолдера:
//Так нельзя:
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%' ");
$stmt->execute(array($_GET['name']));
// Так правильно:
$stmt = $dbh->prepare('SELECT * FROM REGISTRY where name LIKE ?');
$stmt->execute(array('%$_GET[name]%'));
Информация копипастерам
Внимание! Копирование контента с сайта, возможно только с разрешения администратора. Т.е. Меня! Я скорее всего разрешу Вам это сделать, в обмен на живую ссылку, на статью оригинал.
PDO Подготовленные выражения и хранимые процедуры. - PDO Подготовленные выражения и хранимые процедуры. стр-2
