1

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

$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'.");
}
4

2 回答 2

2

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

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

rgds

于 2012-05-21T17:21:13.460 回答
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以获得更好的错误处理和查询参数....

我认为不应该再以这种方式使用 mysql_query 了。

于 2012-05-21T17:19:57.933 回答