PHP.mk документација

oci_execute

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.oci-execute.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека function.oci-execute.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
oci_execute

Референца за `function.oci-execute.php` со подобрена типографија и навигација.

function.oci-execute.php

oci_execute

Класата OCICollection

oci_executeИзвршува изјава

= NULL

oci_execute(resource $statement, int $mode = OCI_COMMIT_ON_SUCCESS): bool

Извршува statement претходно вратено од oci_parse().

По извршувањето, изјавите како INSERT ќе имаат податоци запишани во базата на податоци по дифолт. За изјави како SELECT, извршувањето ја извршува логиката на прашањето. Резултатите од прашањето потоа можат да се преземат во PHP со функции како oci_fetch_array().

Секоја анализирана изјава може да се изврши повеќе пати, со што се заштедуваат трошоците за повторно анализирање. Ова обично се користи за INSERT изјави кога податоците се поврзани со oci_bind_by_name().

Параметри

statement

Валиден идентификатор на OCI изјава.

mode

Опционален втор параметар може да биде една од следниве константи:

Режими на извршување
Константа = NULL
OCI_COMMIT_ON_SUCCESS Автоматски запиши ги сите отворени промени за оваа врска кога изјавата е успешна. Ова е стандардно.
OCI_DESCRIBE_ONLY Направете метаподатоци од прашањето достапни за функции како oci_field_name() но не создавајте сет на резултати. Секое последователно повикување на fetch како oci_fetch_array() ќе откаже.
OCI_NO_AUTO_COMMIT Не запишувај автоматски промени.

Пронајдете и отворете ја конфигурациската датотека на Apache. Стандардно, локацијата е како што следува: OCI_NO_AUTO_COMMIT режимот започнува или продолжува трансакција. Трансакциите автоматски се враќаат назад кога врската е затворена, или кога скриптата завршува. Експлицитно повикајте oci_commit() за запишување на трансакција, или oci_rollback() за да ја прекинете.

При вметнување или ажурирање податоци, се препорачува користење трансакции за конзистентност на релационите податоци и од причини за перформанси.

Враќа OCI_NO_AUTO_COMMIT режимот се користи за која било изјава вклучувајќи прашања, и oci_commit() or oci_rollback() не се повикува последователно, тогаш OCI8 ќе изврши враќање назад на крајот од скриптата дури и ако не се променети податоци. За да избегнете непотребно враќање назад, многу скрипти не користат OCI_NO_AUTO_COMMIT режим за прашања или PL/SQL. Внимавајте да обезбедите соодветна трансакциска конзистентност за апликацијата кога користите oci_execute() со различни режими во иста скрипта.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Примери

Пример #1 oci_execute() за прашања

<?php

$conn
= oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo
"<table border='1'>\n";
while (
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo
"<tr>\n";
foreach (
$row as $item) {
echo
" <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
}
echo
"</tr>\n";
}
echo
"</table>\n";

?>

Пример #2 oci_execute() без да се специфицира режим пример

<?php

// Before running, create the table:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');

oci_execute($stid); // The row is committed and immediately visible to other users

?>

Пример #3 oci_execute() with OCI_NO_AUTO_COMMIT example

<?php

// Before running, create the table:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $i, 10);
for (
$i = 1; $i <= 5; ++$i) {
oci_execute($stid, OCI_NO_AUTO_COMMIT);
}
oci_commit($conn); // commits all new values: 1, 2, 3, 4, 5

?>

Пример #4 oci_execute() со различни режими на запишување пример

<?php

// Before running, create the table:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');
oci_execute($stid, OCI_NO_AUTO_COMMIT); // data not committed

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (456)');
oci_execute($stid); // commits both 123 and 456 values

?>

Генератор oci_execute() with OCI_DESCRIBE_ONLY example

<?php

$conn
= oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM locations');
oci_execute($s, OCI_DESCRIBE_ONLY);
for (
$i = 1; $i <= oci_num_fields($stid); ++$i) {
echo
oci_field_name($stid, $i) . "<br>\n";
}

?>

Белешки

Забелешка:

Трансакциите автоматски се враќаат назад кога врските се затвораат, или кога скриптата завршува, кое и да е порано. Експлицитно повикајте oci_commit() за запишување трансакција.

Секое повикување на oci_execute() што користи OCI_COMMIT_ON_SUCCESS режимот експлицитно или по дифолт ќе ја потврди секоја претходна непотврдена трансакција.

Секој Oracle DDL исказ како CREATE or DROP автоматски ќе ја потврди секоја непотврдена трансакција.

Забелешка:

Бидејќи oci_execute() функцијата генерално ја испраќа изјавата до базата на податоци, oci_execute() може да идентификува некои грешки во синтаксата на изјавата што лесниот, локален oci_parse() функцијата не ја прави. - Подготвува Oracle изјава за извршување

Види Исто така

Белешки од корисници 1 белешка

tower98 на gmail точка com
пред 15 години
Notice (PHP 5.2.12-pl0-gentoo):
You can parse empty query, you can execute empty query (returns true), but you cannot fetch data from empty query. So, if you provide query as variable, make sure it isn't empty.

<?php
$q = oci_parse($c, "");
if($q != false){
    // parsing empty query != false
    if(oci_execute($q){
        // executing empty query != false
        if(oci_fetch_all($q, $data, 0, -1, OCI_FETCHSTATEMENT_BY_ROW) == false){
            // but fetching executed empty query results in error (ORA-24338: statement handle not executed)
            $e = oci_error($q);
            echo $e['message'];
        }
    }
    else{
        $e = oci_error($q);
        echo $e['message'];
    }
}
else{
    $e = oci_error($link);
    echo $e['message'];
}
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.