PHP-Fusion
v.7.01
AP-Fusion
v7.02.05
Pimped-Fusion-AP
v0.09.03
November 25 2024 20:41:30
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

lom
06/04/2018 14:03
Мы рады, ждем девятку. Очень хочется пощупать

Alipapa
27/03/2018 22:16
Всем привет, все неисправности устранили, всё у нас работает

mukaton
30/10/2015 02:37
Не получается ничего скачать. Ошибка Not Found

Alipapa
06/10/2015 23:00
9-я версия php-fusion на подходе, следите за новостями

Alipapa
10/11/2014 11:24
Заметь, я дважды ответил через 3 минуты после вопроса, могли бы уже решить

Последние статьи
· О стабилизаторах нап...
· СМС и Вебмани
· TinyMCE для пользова...
· PCRE (Perl Compatibl...
· PCRE (Perl Compatibl...
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
PHP-Fusion 7 Bogatyr - бесп...
Моды, плагины
7742 1 Vveb--ws
08-10-2018 16:47
Php-Fusion v9. Первые впеча...
Вопросы по работе
5028 3 Vveb--ws
25-07-2018 13:46
Появился хэлп по PHP-Fusion...
Вопросы по работе
7190 7 Vveb--ws
25-07-2018 13:42
prestashop&ap-fusion
Вопросы по работе
18311 61 Alipapa
26-08-2014 10:29
Плагин магазина Ap-Shop
Моды, плагины
15372 70 Alipapa
18-08-2014 18:14
TinyMCE
Вопросы по работе
21935 55 Alipapa
27-07-2013 21:57
HTML-5
Моды, плагины
5790 1 Alipapa
15-06-2013 19:47
Мультиязычность в Pimped-Fu...
Ошибки, баги, глюки
6678 4 Papich
16-04-2013 12:39
Pimped-Fusion. Первые впеча...
Ошибки, баги, глюки
23360 127 Alipapa
18-12-2012 10:59
Ищу мод для расстановки код...
Моды, плагины
15626 55 Alipapa
17-09-2012 14:00
Как присоединить файл к лич...
Моды, плагины
8550 3 lom
27-05-2012 18:12
Что мне не нравится в после...
Вопросы по работе
7152 4 Alipapa
27-05-2012 18:08
Проблемы с добавлением кате...
Вопросы по работе
8120 5 Alipapa
27-05-2012 18:06

oci_bind_by_name

(PHP 5)

oci_bind_by_name --  Привязывает переменную PHP к соответствующей метке в SQL-выражении.

Описание

bool oci_bind_by_name ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]] )

oci_bind_by_name() привязывает переменную variable к метке ph_name. Будет ли она использоваться для вывода или ввода - выяснится в процессе выполнения и необходимые ресурсы будут выделены по необходимости. Параметр length устанавливает максимальный объем в байтах получаемой переменной. Если параметр length равен -1, то oci_bind_by_name() будет использовать текущую длину variable как максимальную.

Если вы хотите привязать абстрактный тип данных (LOB/ROWID/BFILE), то вам необходимо сначала создать дескриптор с помощью oci_new_descriptor(). Параметр length не используется с абстрактными типами данных и должен быть равен -1. Параметр type говорит Oracle, какой тип дескриптора мы хотим использовать. Возможные значения этого параметра:

  • OCI_B_FILE - для BFILE;

  • OCI_B_CFILE - для CFILE;

  • OCI_B_CLOB - для CLOB;

  • OCI_B_BLOB - для BLOB;

  • OCI_B_ROWID - для ROWID;

  • OCI_B_NTY - для именованных типов данных;

  • OCI_B_CURSOR - для курсоров, созданных ранее с помощью oci_new_cursor().

Пример 1. Пример использования oci_bind_by_name()

<?php
/* oci_bind_by_name example thies at thieso dot net (980221)
  inserts 3 records into emp, and uses the ROWID for updating the
  records just after the insert.
*/

$conn = oci_connect ( "scott" , "tiger" );

$stmt = oci_parse ( $conn , "
                          INSERT INTO
                                     emp (empno, ename)
                   VALUES
                                     (:empno,:ename)
                            RETURNING
                                     ROWID
                                 INTO
                                     :rid
                                         "
);

$data = array(
              
1111 => "Larry" ,
              
2222 => "Bill" ,
              
3333 => "Jim"
             
);

$rowid = oci_new_descriptor ( $conn , OCI_D_ROWID );

oci_bind_by_name ( $stmt , ":empno" , $empno , 32 );
oci_bind_by_name ( $stmt , ":ename" , $ename , 32 );
oci_bind_by_name ( $stmt , ":rid" ,    $rowid , - 1 , OCI_B_ROWID );

$update = oci_parse ( $conn , "
                            UPDATE
                                  emp
                               SET
                                  sal = :sal
                             WHERE
                                  ROWID = :rid
                             "
);
oci_bind_by_name ( $update , ":rid" , $rowid , - 1 , OCI_B_ROWID );
oci_bind_by_name ( $update , ":sal" , $sal ,    32 );

$sal = 10000 ;

while (list(
$empno , $ename ) = each ( $data )) {
    
oci_execute ( $stmt );
    
oci_execute ( $update );
}

$rowid -> free ();

oci_free_statement ( $update );
oci_free_statement ( $stmt );

$stmt = oci_parse ( $conn , "
                          SELECT
                                *
                            FROM
                                emp
                           WHERE
                                empno
                              IN
                                (1111,2222,3333)
                              "
);
oci_execute ( $stmt );
                              
while (
$row = oci_fetch_assoc ( $stmt )) {
    
var_dump ( $row );
}

oci_free_statement ( $stmt );

/* delete our "junk" from the emp table.... */
$stmt = oci_parse ( $conn , "
                          DELETE FROM
                                     emp
                                WHERE
                                     empno
                                   IN
                                     (1111,2222,3333)
                                   "
);
oci_execute ( $stmt );
oci_free_statement ( $stmt );

oci_close ( $conn );
?>

Помните о том, что при использовании этой функции, конечные пробелы у строки будут обрезаны. Смотрите следующий пример:

Пример 2. Пример oci_bind_by_name()

<?php
    $connection
= oci_connect ( 'apelsin' , 'kanistra' );
    
$query = "INSERT INTO test_table VALUES(:id, :text)" ;

    
$statement = oci_parse ( $query );
    
oci_bind_by_name ( $statement , ":id" , 1 );
    
oci_bind_by_name ( $statement , ":text" , "trailing spaces follow     " );
    
oci_execute ( $statement );
    
/*
     Этот код добавит в базу только строку 'trailing spaces follow', без
     пробелов в конце строки
    */
?>

Пример 3. Пример oci_bind_by_name()

<?php
    $connection
= oci_connect ( 'apelsin' , 'kanistra' );
    
$query = "INSERT INTO test_table VALUES(:id, 'trailing spaces follow      ')" ;

    
$statement = oci_parse ( $query );
    
oci_bind_by_name ( $statement , ":id" , 1 );
    
oci_execute ( $statement );
    
/*
     А этот код добавит в базу строку 'trailing spaces follow      ' вместе с
     пробелами в конце строки
    */
?>

Внимание

Использовать magic_quotes_gpc, magic_quotes_runtime или addslashes() вместе с oci_bind_by_name() - это определенно плохая идея, т.к. в этих случаях кавычки будут записаны в базу вместе с данными. oci_bind_by_name() не может отличить "магические кавычки" от тех, что были добавлены намеренно.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocinewcollection(). В PHP 5.0.0 и выше ocinewcollection() является алиасом oci_new_collection(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Все функции PHP:
Навигация
· Новости
· Статьи
· Скачать
· Форум
· Ссылки
· Категории новостей
· Обратная связь
· Галерея
· Поиск
· CMS AP-Fusion. Отличия от PHP-Fusion
· Javascript справочник
· Техника
Сейчас на сайте
· Гостей: 18

· Пользователей: 0

· Всего пользователей: 453
· Новый пользователь: ZDA
Информеры
Загрузка файлов  +  -
10,247,709 уникальных посетителей Iceberg by Harly