检查所需数据是否在数据库中的正确方法是什么?
我目前使用的是,
mysql_query("SELECT anyfield FROM table WHERE field='$data'");
然后检查是否有任何行受影响。
但我对提取的数据anyfield
没有任何用处。
虽然资源使用量很小,但是在没有从表中提取任何其他字段的情况下检查数据是否存在于数据库中的正确方法是什么?
答案 0 :(得分: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
}
答案 1 :(得分:2)
$result = mysql_query("SELECT `field` FROM `table` WHERE `field` = '".$data."'");
if (mysql_num_rows($result)){
// Rows exist
}
OR
$result = mysql_query("SELECT COUNT(`field`) as count FROM `table` WHERE `field` = '".$data."'");
$row = mysql_fetch_array($result);
if ($row ['count']){
// Rows exist
}
答案 2 :(得分:0)
如果我检查数据,我会确保尽可能少地返回数据。
获取一个字段(我通常会id
)并确保您使用LIMIT
,例如。 LIMIT 1
...假设您只想知道是否存在任何记录。
因为您正在使用PHP变量来查找记录,如果它适合您的情况,您可能会在获得LEFT JOIN
的第一个SQL行上执行$data
,但这可能就像很容易因你需要而过度。