PHP 日本會議 2024

mysql_result

(PHP 4, PHP 5)

mysql_result取得結果資料

警告

此擴充功能在 PHP 5.5.0 中已被棄用,並在 PHP 7.0.0 中移除。請改用 MySQLiPDO_MySQL 擴充功能。另請參閱 MySQL:選擇 API 指南。此函數的替代方案包括

描述

mysql_result(resource $result, int $row, mixed $field = 0): string

從 MySQL 結果集中擷取一個儲存格的內容。

處理大型結果集時,應考慮使用擷取整列的函數(如下所指定)。由於這些函數在一個函數呼叫中傳回多個儲存格的內容,因此它們比 mysql_result() 快得多。此外,請注意,為 field 引數指定數字偏移量比指定欄位名稱或 table.field 引數快得多。

參數

result

正在評估的結果 resource。此結果來自呼叫 mysql_query()

row

從結果中擷取的列號。列號從 0 開始。

field

要擷取的欄位的名稱或偏移量。

它可以是欄位的偏移量、欄位的名稱,或是欄位的表格點欄位名稱 (tablename.fieldname)。如果欄位名稱已使用別名 ('select foo as bar from...'),請使用別名,而不是欄位名稱。如果未定義,則擷取第一個欄位。

傳回值

成功時傳回 MySQL 結果集中一個儲存格的內容,失敗時傳回 false

範例

範例 1 mysql_result() 範例

<?php
$link
= mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!
$link) {
die(
'無法連線:' . mysql_error());
}
if (!
mysql_select_db('database_name')) {
die(
'無法選取資料庫:' . mysql_error());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!
$result) {
die(
'無法查詢:' . mysql_error());
}
echo
mysql_result($result, 2); // 輸出第三位員工的姓名

mysql_close($link);
?>

注意事項

注意:

不應將 mysql_result() 的呼叫與處理結果集的其他函數的呼叫混合使用。

參見

新增筆記

使用者貢獻的筆記 4 筆筆記

18
freedman at FreeFormIT dot com
9 年前
這是使用 mysqli 的粗略替代方案

if (!function_exists('mysql_result')) {
function mysql_result($result, $number, $field=0) {
mysqli_data_seek($result, $number);
$row = mysqli_fetch_array($result);
return $row[$field];
}
}
1
bob dot schuon at loungelizard dot com
5 年前
此函數考慮到原始函數能夠接受 "table_name.field_name" 項目以及僅欄位名稱的能力

function mysqli_result($res, $row, $field=0) {
$result->data_seek($row);
$data = $result->fetch_array();
$field_name = $field;
if ( is_string($field) ) {
$fields_array = explode(".", $field);
$array_len = count($fields_array);
if ($array_len > 1) {
$field_name = $fields_array[array_len - 1];
} else {
$field_name = $fields_array[0];
}
}

return $data[$field_name];
}
1
mark at pnod dot co dot uk
1 年前
若要替換列計數,例如

$querystring = "SELECT COUNT(*) FROM table WHERE column1 = 'EXAMPLE'";
$total_records = mysql_result(mysql_query($querystring,$connection),0);

請使用 mysqli_fetch_row

$querystring = "SELECT COUNT(*) FROM table WHERE column1 = 'EXAMPLE'";
$rowcount = mysqli_fetch_row(mysqli_query($connection,$querystring));
$total_records = $rowcount[0];
-3
v dot teemu at gmail dot com
8 年前
我也在尋找 mysqli 替代方案來取得第一列,當已知查詢只會傳回 1 個值時。似乎很簡單

echo(mysql_result($result, 0));

變成

echo($result->fetch_row()[0]);

或者

if ($row = $result->fetch_row()) {
echo($row[0]);
}
To Top