6

アマチュアの質問ですが、私が疑問に思っていたことがあります。MySQLクエリから1つの行を選択するためのPHPとは何ですか?別名、一意のIDで何かを選択していて(リクエストに一致する行が1つしかないことを知っています)、その値のみを取得したいと考えています。それでも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し、PHP7の場合は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制約がある場合は、1回だけ呼び出すことができますmysql_fetch_row($res)

実際に結果が得られたことを確認したい場合は、を確認できますmysql_num_rows($res) == 1

于 2012-07-02T23:14:42.157 に答える
1

ループは必要ありません。関数を呼び出して、クエリ結果セットから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
  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 に答える
0

mysql_fetch_assocこの拡張機能はPHP5.5.0で非推奨になり、PHP7.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 に答える