0

特定のものが存在するかどうかを確認するために Select クエリを実行するPHPコードがありますpersonName。存在する場合はその旨を返し、存在しない場合は同じことを示す応答JSONを送信する必要があります。JSON

これまでの私のコード;

$rst= mysql_query("select* from Person
where personname='Labby'");


 while($r= mysql_fetch_array($rst) ){

// Now what ??
}

$rst= mysql_query("select* from Person where personname='Labby'");//が true を返したか false を返したかはどうすればわかりますか? それに応じて、JSON 応答を作成します。これどうやってするの ?

4

4 に答える 4

1

フェッチを処理する前に、$rst最初に NULL かどうかをテストする必要があります。

if($rst)
    while($r = mysql_fetch_array)

Mysql_query ドキュメント:

戻り値

SELECT、SHOW、DESCRIBE、EXPLAIN、および結果セットを返すその他のステートメントの場合、mysql_query() は成功するとリソースを返し、エラーの場合は FALSE を返します。

他のタイプの SQL ステートメント、INSERT、UPDATE、DELETE、DROP などの場合、mysql_query() は成功時に TRUE を返し、エラー時に FALSE を返します。

返された結果リソースは、返されたデータにアクセスするために、mysql_fetch_array() および結果テーブルを処理するためのその他の関数に渡される必要があります。

mysql_num_rows() を使用して、SELECT ステートメントに対して返された行数を調べるか、mysql_affected_rows() を使用して、DELETE、INSERT、REPLACE、または UPDATE ステートメントによって影響を受けた行数を調べます。

mysql_query() は、クエリによって参照されるテーブルにアクセスする権限がユーザーにない場合にも失敗し、FALSE を返します。

于 2012-06-29T19:57:53.370 に答える
1

SELECT、SHOW、DESCRIBE、EXPLAIN、および結果セットを返すその他のステートメントの場合、mysql_query() は成功するとリソースを返し、エラーの場合は FALSE を返します。

http://php.net/manual/en/function.mysql-query.phpから:

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

// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$result) {
    $message  = 'Invalid query: ' . mysql_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 mysql result functions must be used
// See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row = mysql_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
 }
于 2012-06-29T19:56:00.200 に答える
1

ここでの秘訣は$r、何も見つからない場合は false になることを認識することです。これは、mysql が探しているものを見つけられない場合、ループが終了する (または開始されない) ことを意味します。

次のようなことができます:

$rst= mysql_query("select* from Person
where personname='Labby'");

$return = array();
while($r= mysql_fetch_array($rst) ){
    $return[] = $r;
}

if (count($return) > 0) {
    echo json_encode($return);
}
else {
    echo '{"success": false}'
}

明らかに、「true」と「false」の戻り値をアプリにとって意味のある値に調整する必要があります。

于 2012-06-29T19:56:01.280 に答える
1

クエリを使用するように切り替えてCOUNT(*)値を取得するmysql_num_rows()か、(または mysqli または PDO に相当するもの) を使用します。

于 2012-06-29T19:56:08.173 に答える