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

Php 检查表中是否存在具有特定值的特定行,php,mysql,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'."); } $sql=“select*f

我写了这段代码,它可以工作,但我仍然想知道是否有其他更好更简单的解决方案

$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'.");
}
$sql=“select*from db_成员,其中username='$name';
$result=mysql\u query($sql)或error(mysql\u error());
if(mysql_num_rows($result)<1)
{
错误(“没有名为“$name.”的用户);
}
一种更快的方法:

$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') . '.';
}
请检查是否有更好的错误处理和查询参数


我认为不应该再以这种方式使用mysql\u查询了。

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

  • 注意你的索引。如果可以在一些索引列上使用where子句,那就太完美了
  • 如果您计划在插入之前检查元素是否存在,我宁愿捕获错误,而不是像您这样检查
  • 您确实可以减少开销,减少选择范围,就像其他成员提到的那样
rgds