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

db2_execute

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

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

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

function.db2-execute.php

db2_execute

("PECL ibm_db2" >= 1.0.0)

db2_execute Извршува подготвена SQL изјава

= NULL

function db2_execute(resource $stmt, array $parameters = []): bool

db2_execute() извршува SQL изјава што беше подготвена од db2_prepare().

Ако SQL изјавата враќа сет на резултати, на пример, изјава SELECT или повик до складирана процедура што враќа еден или повеќе множества на резултати, можете да извлечете ред како низа од stmt ресурс користејќи db2_fetch_assoc(), db2_fetch_both(), или db2_fetch_array(). Алтернативно, можете да користите db2_fetch_row() за да го поместите покажувачот на множеството резултати на следниот ред и да извлечете една колона од тој ред со db2_result().

мора да биде асоцијативен низ од асоцијативни низи во формат db2_prepare() за кратка дискусија за предностите од користењето db2_prepare() and db2_execute() отколку db2_exec().

Параметри

stmt
Подготвена изјава вратена од db2_prepare().
parameters
Низа од влезни параметри што одговараат на какви било маркерски параметри содржани во подготвената изјава.

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

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

Примери

Пример #1 Подготовка и извршување на SQL изјава со маркерски параметри

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

<?php
$pet
= array(0, 'cat', 'Pook', 3.2);

$insert = 'INSERT INTO animals (id, breed, name, weight)
VALUES (?, ?, ?, ?)'
;

$stmt = db2_prepare($conn, $insert);
if (
$stmt) {
$result = db2_execute($stmt, $pet);
if (
$result) {
print
"Successfully added new pet.";
}
}
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Successfully added new pet.

Пример #2 Повикување складирана процедура со OUT параметар

Следниот пример подготвува изјава CALL што прифаќа еден маркерски параметар што претставува OUT параметар, врзува PHP променлива $my_pets на параметарот користејќи db2_bind_param(), потоа издава db2_execute() за да ја изврши изјавата CALL. Откако ќе се направи повикот до складираната процедура, вредноста на $num_pets се менува за да ја одрази вредноста вратена од складираната процедура за тој OUT параметар.

<?php
$num_pets
= 0;
$res = db2_prepare($conn, "CALL count_my_pets(?)");
$rc = db2_bind_param($res, 1, "num_pets", DB2_PARAM_OUT);
$rc = db2_execute($res);
print
"I have $num_pets pets!";
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

I have 7 pets!

Пример #3 Враќање XML податоци како SQL ResultSet

Следниот пример покажува како да се работи со документи складирани во XML колона користејќи ја базата на податоци SAMPLE. Користејќи многу едноставен SQL/XML, овој пример враќа некои од јазлите во XML документ во формат SQL ResultSet со кој повеќето корисници се запознаени.

<?php

$conn
= db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" VARCHAR (50) PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) AS T
WHERE NAME = ?
'
;

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if (
$stmt) {
db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_execute($stmt);

while(
$row = db2_fetch_object($stmt)){
printf("$row->CID $row->NAME $row->PHONE\n");
}
}
db2_close($conn);

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Пример #4 Изведување "JOIN" со XML податоци

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns an SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn
= db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM" BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
B.POID = C.PONUM AND
A.NAME = ?
'
;

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if (
$stmt) {
db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_execute($stmt);

while(
$row = db2_fetch_object($stmt)){
printf("$row->CID $row->NAME $row->PHONE $row->PONUM $row->STATUS\n");
}
}

db2_close($conn);

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

1001     Kathy Smith     905-555-7258     5002     Shipped

Следниот пример работи со документи складирани во 2 различни XML колони во базата на податоци SAMPLE. Создава 2 привремени табели од XML документите од 2 различни колони и враќа SQL ResultSet со информации во врска со статусот на испорака за клиентот.

Пример #5 Враќање SQL податоци како дел од поголем XML документ

<?php

$conn
= db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
declare boundary-space strip;
declare default element namespace "http://posample.org";
<promoList> {
for $prod in $doc/product
where $prod/description/price < 10.00
order by $prod/description/price ascending
return(
<promoitem> {
$prod,
<startdate> {$start} </startdate>,
<enddate> {$end} </enddate>,
<promoprice> {$promo} </promoprice>
} </promoitem>
)
} </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = ?
'
;

$stmt = db2_prepare($conn, $query);

$pid = "100-100-01";

if (
$stmt) {
db2_bind_param($stmt, 1, "pid", DB2_PARAM_IN);
db2_execute($stmt);

while(
$row = db2_fetch_array($stmt)){
printf("$row[0]\n");
}
}

db2_close($conn);

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

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

  • db2_exec() - Извршува SQL изјава директно
  • db2_fetch_array() - Враќа низа, индексирана по позиција на колона, што претставува ред во сет на резултати
  • db2_fetch_assoc() - Враќа низа, индексирана по име на колона, што претставува ред во сет на резултати
  • db2_fetch_both() - Враќа низа, индексирана по име и позиција на колона, што претставува ред во сет на резултати
  • db2_fetch_row() - Поставува покажувач на сет на резултати на следниот ред или бараниот ред
  • db2_prepare() - Подготвува SQL изјава за извршување
  • db2_result() - Враќа една колона од ред во сет на резултати

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

- Преземи проширен поток со податоци
пред 10 години
You CANNOT bind parameters for table and/or column names. Binding parameters only works for values:

YES: $sqlQuery = "UPDATE ".TB_NAME." SET ".CN_NAME." = ? WHERE DAY = ?";
NO: $sqlQuery = "UPDATE ? SET ? = ? WHERE DAY = ?";

Any attempt to bind column or table names will result in the following error during db2_execute():
PHP Warning:  db2_bind_param(): Describe Param Failed in ...
Навигација

Прелистувај сродни теми и функции.

На оваа страница

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

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

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

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

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