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, ЙЮЙНИ РХО ДЕЯЙПХОРНПЮ ЛШ УНРХЛ ХЯОНКЭГНБЮРЭ. бНГЛНФМШЕ ГМЮВЕМХЪ ЩРНЦН ОЮПЮЛЕРПЮ:

Пример 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 Б ЯКСВЮЕ БНГМХЙМНБЕМХЪ НЬХАЙХ.


HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ