PHP8 cubrid_query

2024-03-30 21:11 更新

(PECL CUBRID >= 8.3.1)

cubrid_query — 發(fā)送 CUBRID 查詢

說明

cubrid_query(string $query, resource $conn_identifier = ?): resource

cubrid_query() 將唯一查詢(不支持多個查詢)發(fā)送到 與指定 關(guān)聯(lián)的服務(wù)器上的當(dāng)前活動數(shù)據(jù)庫。conn_identifier

參數(shù) 

query

SQL 查詢

查詢中的數(shù)據(jù)應(yīng)正確轉(zhuǎn)義。

conn_identifier

CUBRID 連接。如果未指定連接標(biāo)識符, cubrid_connect() 打開的最后一個連接是 假設(shè)。

返回值 

對于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回結(jié)果集的語句,cubrid_query() 在成功時返回資源,在錯誤時返回 false。

對于其他類型的 SQL 語句,INSERT、UPDATE、DELETE、DROP 等,cubrid_query() 在成功時返回 true,在出錯時返回 false。

返回的結(jié)果資源應(yīng)傳遞給 cubrid_fetch_array() 等 用于處理結(jié)果表的函數(shù),以訪問返回的數(shù)據(jù)。

使用 cubrid_num_rows() 找出 SELECT 語句返回的行數(shù),或使用 cubrid_affected_rows() 找出受 DELETE、INSERT、REPLACE 或 UPDATE 語句影響的行數(shù)。

如果用戶無權(quán)訪問查詢引用的表,cubrid_query() 也將失敗并返回 false。

示例 

示例 #1 Invalid Query

以下查詢在語法上無效,因此 cubrid_query() 失敗并返回 false。

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

$result = cubrid_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Invalid query: ' . cubrid_error());
}

?>

示例 #2 Valid Query

以下查詢有效,因此 cubrid_query() 返回資源。

<?php
// This could be supplied by a user, for example
$firstname = 'fred';
$lastname  = 'fox';

$conn = cubrid_connect('localhost', 33000, 'demodb');

cubrid_execute($conn,"DROP TABLE if exists friends");
cubrid_execute($conn,"create table friends(firstname varchar,lastname varchar,address char(24),age int)");
cubrid_execute($conn,"insert into friends values('fred','fox','home-1','20')");
cubrid_execute($conn,"insert into friends values('blue','cat','home-2','21')");
// Formulate Query
// This is the best way to perform an SQL query
// For more examples, see cubrid_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
cubrid_real_escape_string($firstname),
cubrid_real_escape_string($lastname));

// Perform Query
$result = cubrid_query($query);

// Check result
// This shows the actual query sent to CUBRID, and the error. Useful for debugging.
if (!$result) {
    $message  = 'Invalid query: ' . cubrid_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}

// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the cubrid result functions must be used
// See also cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row(), etc.
while ($row = cubrid_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

// Free the resources associated with the result set
// This is done automatically at the end of the script
cubrid_free_result($result);
?>

參見 

  • cubrid_connect() - 打開與 CUBRID 服務(wù)器的連接
  • cubrid_error() - 獲取錯誤消息
  • cubrid_real_escape_string() - 對字符串中的特殊字符進(jìn)行轉(zhuǎn)義,以便在 SQL 語句中使用
  • cubrid_result() - 返回特定行中特定字段的值
  • cubrid_fetch_assoc() - 返回與提取的行相對應(yīng)的關(guān)聯(lián)數(shù)組
  • cubrid_unbuffered_query() - 在不將結(jié)果提取到內(nèi)存中的情況下執(zhí)行查詢


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號