检查表中是否存在具有特定值的某一行

时间:2012-05-21 17:17:09

标签: php mysql

我写了这段代码并且它有效,但我仍然想知道是否有更好更简单的其他解决方案。

$sql = "select * from db_member where username = '$name'";
$result = mysql_query($sql) or error(mysql_error());
if(mysql_num_rows($result) < 1) 
{
error("There is no user with name '$name'.");
}

2 个答案:

答案 0 :(得分:2)

不,没有任何其他细节,这是一个很好的解决方案。但是,您可以查看以下几点:

  • 照顾你的索引。如果你可以在某些索引列上使用where子句,那将是完美的
  • 如果你打算在插入之前检查一个元素的存在,我宁可抓住错误而不是像你正在做的那样检查。
  • 你确实可以减少开销,减少选择范围,就像其他成员提到的那样

RGDS

答案 1 :(得分:0)

更快的方法:

$result = mysql_query("SELECT COUNT(1) FROM db_member WHERE username='".mysql_real_escape_string($name)."'") or die(mysql_error());
if (mysql_result($result, 0) == 0) {
    echo 'There is no user with name ' . htmlspecialchars($name, ENT_QUOTES, 'UTF-8') . '.';
}

请检查http://php.net/pdo以获得更好的错误处理和查询参数....

我认为不应该再这样使用mysqli_query ..