6

业余问题,但我一直想知道。从 MySQL 查询中选择一行的 PHP 是什么?AKA 您正在通过唯一 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?
4

7 回答 7

13

添加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"]; 
于 2012-07-02T23:10:48.243 回答
2

如果uid是你的主键,或者它有一个unique约束,你可以简单地调用mysql_fetch_row($res)一次。

如果你想验证你是否真的得到了结果,你可以检查 if mysql_num_rows($res) == 1

于 2012-07-02T23:14:42.157 回答
1

不需要任何循环,只需调用函数从查询结果集中提取一行:

$query = "SELECT name,age FROM people WHERE uid = '2'";
$result = mysql_query($query);
$row = mysql_fetch_assoc( $result );
var_dump( $row );
于 2012-07-02T23:14:26.510 回答
0

添加LIMIT您的查询。例如,

SELECT name,age FROM people WHERE uid = '2' LIMIT 1
于 2012-07-02T23:53:21.327 回答
0

这是另一个例子:

<?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;
?>
于 2014-01-05T21:51:44.090 回答
0

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'];
}
于 2020-10-04T10:26:14.947 回答
0
  1. 使用此代码。这将返回一个具有所有属性的对象。

fetch_object=> 将结果集的当前行作为对象返回

$sql = "SELECT * from contacts where id=1";
$result = $conn->query($sql);
$allData =$result -> fetch_object();
var_dump($allData);
  1. 使用此代码。这将返回一个关联数组

fetch_assoc=> 获取结果行作为关联数组

$sql = "SELECT * from contacts where id=1";
$result = $conn->query($sql);
$allData =$result -> fetch_assoc();
var_dump($allData);

您可以使用fetch_assocfetch_object根据您的需要。

于 2020-10-04T10:05:52.210 回答