PHP8 cubrid_execute

2024-03-27 10:22 更新

(PECL CUBRID >= 8.3.0)

cubrid_execute — 執(zhí)行準(zhǔn)備好的 SQL 語句

說明

cubrid_execute(resource $conn_identifier, string $sql, int $option = 0): resource
cubrid_execute(resource $request_identifier, int $option = 0): bool

cubrid_execute() 函數(shù)用于執(zhí)行 給定 SQL 語句。它使用 和 SQL 執(zhí)行查詢,然后返回 已創(chuàng)建請(qǐng)求標(biāo)識(shí)符。它用于查詢的簡單執(zhí)行, 不需要參數(shù)綁定的位置。此外,cubrid_execute() 函數(shù)用于執(zhí)行 通過 cubrid_prepare() 和 cubrid_bind() 準(zhǔn)備語句。此時(shí),您需要指定 和 的參數(shù)。conn_identifierrequest_identifieroption

用于確定是否獲取 OID 查詢執(zhí)行后,是否同步執(zhí)行查詢或 異步模式。CUBRID_INCLUDE_OID 和 CUBRID_ASYNC(如果要執(zhí)行多個(gè) SQL 語句,則CUBRID_EXEC_QUERY_ALL)可以 使用按位 OR 運(yùn)算符指定。如果未指定,則兩者都不是 他們被選中。如果設(shè)置了標(biāo)志CUBRID_EXEC_QUERY_ALL,則同步 mode (sync_mode) 用于檢索查詢結(jié)果,在這種情況下, 應(yīng)用以下規(guī)則:option

  • 返回值是第一個(gè)查詢的結(jié)果。
  • 如果在任何查詢中發(fā)生錯(cuò)誤,則執(zhí)行將作為 失敗。
  • 在由 q1 q2 q3 組成的查詢中,如果錯(cuò)誤 Q1 執(zhí)行成功后發(fā)生在 Q2 中,Q1 的結(jié)果保持不變 有效。也就是說,不會(huì)滾動(dòng)先前成功的查詢執(zhí)行 發(fā)生錯(cuò)誤時(shí)返回。
  • 如果查詢執(zhí)行成功,則第二個(gè)查詢的結(jié)果可以 使用 cubrid_next_result() 獲得。

如果第一個(gè)參數(shù)是 執(zhí)行 cubrid_prepare() 函數(shù),可以指定 一個(gè)選項(xiàng),僅CUBRID_ASYNC。request_identifier

參數(shù) 

conn_identifier

連接標(biāo)識(shí)符。

sql

要執(zhí)行的 SQL。

option

查詢執(zhí)行選項(xiàng) CUBRID_INCLUDE_OID、CUBRID_ASYNC CUBRID_EXEC_QUERY_ALL

request_identifier

cubrid_prepare() 標(biāo)識(shí)符。

返回值 

請(qǐng)求標(biāo)識(shí)符,當(dāng)進(jìn)程成功且第一個(gè)參數(shù)為 conn_identifier;true,當(dāng)進(jìn)程成功且第一個(gè)參數(shù)為 request_identifier, 或者在失敗時(shí)返回 false.

更新日志 

版本說明
8.4.0添加新選項(xiàng)CUBRID_EXEC_QUERY_ALL。

示例 

示例 #1 cubrid_execute() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE name='100m Butterfly' and gender='M'", CUBRID_ASYNC);
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$history_req = cubrid_prepare($conn, "SELECT * FROM history WHERE event_code=?");
cubrid_bind($history_req, 1, $event_code, "number");
cubrid_execute($history_req);

printf("%-20s %-9s %-10s %-5s\n", "athlete", "host_year", "score", "unit");
while ($row = cubrid_fetch_array($history_req, CUBRID_ASSOC)) {
    printf("%-20s %-9s %-10s %-5s\n", 
        $row["athlete"], $row["host_year"], $row["score"], $row["unit"]);
}

cubrid_close_request($history_req);

cubrid_disconnect($conn);
?>

以上示例會(huì)輸出:

athlete              host_year score      unit 
Phelps Michael       2004      51.25      time

參見 

  • cubrid_prepare() - 準(zhǔn)備要執(zhí)行的 SQL 語句
  • cubrid_bind() - 將變量作為參數(shù)綁定到準(zhǔn)備好的語句
  • cubrid_next_result() - 執(zhí)行多個(gè) SQL 語句時(shí)獲取下一個(gè)查詢的結(jié)果
  • cubrid_close_request() - 關(guān)閉請(qǐng)求句柄
  • cubrid_commit() - 提交事務(wù)
  • cubrid_rollback() - 回滾事務(wù)


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)