2

必要なデータがデータベースにあるかどうかを確認する正しい方法は何ですか?

私が現在使っているのは、

mysql_query("SELECT anyfield FROM table WHERE field='$data'");

次に、影響を受ける行があるかどうかを確認します。

しかし、私は抽出されたデータを実際に使用することはありませんanyfield。ここではリソースの使用量はごくわずかですが、テーブルから他のフィールドを抽出せずにデータがデータベースに存在するかどうかを確認する正しい方法は何ですか?

4

3 に答える 3

5

データベースにカウントさせ、クエリからカウントデータを取得します。

$result = mysql_query('SELECT COUNT(*) FROM `table` WHERE `field` = ...');
if (!$result) {
    die(mysql_error());
}
if (mysql_result($result, 0, 0) > 0) {
    // some data matched
} else {
    // no data matched
}
于 2012-04-12T08:12:56.593 に答える
2
$result = mysql_query("SELECT `field` FROM `table` WHERE `field` = '".$data."'");
if (mysql_num_rows($result)){
    // Rows exist
}

また

$result = mysql_query("SELECT COUNT(`field`) as count FROM `table` WHERE `field` = '".$data."'");
$row = mysql_fetch_array($result);
if ($row ['count']){
    // Rows exist
}
于 2012-04-12T08:08:38.023 に答える
0

データをチェックしている場合は、返されるデータをできるだけ少なくするようにします。

1つのフィールドをフェッチし(私は通常そうします) 、たとえば、idを使用するようにします。...レコードが存在するかどうだけを知りたいと仮定します。LIMITLIMIT 1

PHP変数を使用してレコードを検索しているため、状況に適している場合は、LEFT JOIN取得する最初のSQL行でを実行できますが$data、必要なものに対しては簡単にやり過ぎになる可能性があります。

于 2012-04-12T08:18:11.003 に答える