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 に答える