[英]Return One Row from MySQL
業余問題,但我一直想知道的問題。 從 MySQL 查詢中選擇一行的 PHP 是什么? 也就是您通過唯一 ID 選擇某些東西(您知道只有一行符合您的請求)並且只想獲得該值。 你還需要使用while循環和mysql_fetch_row嗎?
$query = "SELECT name,age FROM people WHERE uid = '2'";
$result = mysql_query($query);
// what php is used to return the name and age? preferably without a loop?
添加limit 0,1
,對於 PHP 7 使用mysqli
$query = "SELECT name,age FROM people WHERE uid = '2' LIMIT 0,1";
$result = mysqli_query($query);
$res = mysqli_fetch_assoc($result);
echo $res["age"];
如果uid
是你的主鍵,或者它有一個unique
約束,你可以簡單地調用mysql_fetch_row($res)
一次。
如果要驗證是否確實得到了結果,可以檢查是否mysql_num_rows($res) == 1
。
不需要任何循環,只需調用函數從查詢結果集中提取一行:
$query = "SELECT name,age FROM people WHERE uid = '2'";
$result = mysql_query($query);
$row = mysql_fetch_assoc( $result );
var_dump( $row );
在您的查詢中添加LIMIT
。 例如,
SELECT name,age FROM people WHERE uid = '2' LIMIT 1
這是另一個例子:
<?php
mysql_connect("server","user","password")
or die ('Connection failed: ' . mysql_error() );
//
mysql_select_db ("database")
or die ('Selection failed: ' . mysql_error());
//
$portaQuery = "SELECT user_name FROM table_users";
//
$portaResult = mysql_query($portaQuery)
or die ('Query failed: ' . mysql_error());
//
$displayUserName = mysql_result ($portaResult, 0, "user_name" );
//
echo $displayUserName;
?>
fetch_object
=> 將結果集的當前行作為對象返回
$sql = "SELECT * from contacts where id=1";
$result = $conn->query($sql);
$allData =$result -> fetch_object();
var_dump($allData);
fetch_assoc
=> 獲取結果行作為關聯數組
$sql = "SELECT * from contacts where id=1";
$result = $conn->query($sql);
$allData =$result -> fetch_assoc();
var_dump($allData);
您可以根據需要使用fetch_assoc
或fetch_object
。
mysql_fetch_assoc這個擴展在 PHP 5.5.0 中被棄用,在 PHP 7.0.0 中被移除。 而是使用mysqli_fetch_assoc - 這將獲取結果行作為關聯數組。
示例 1:面向對象的風格
$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 1";
$result = $mysqli->query($query);
$row = $result->fetch_assoc();
echo $row['Name'];
示例 2:程序風格
$link = mysqli_connect("localhost", "my_user", "my_password", "dbname");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 1";
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
$row = mysqli_fetch_assoc($result);
echo $row['Name'];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.