0

MySQL から MySQLi に変換していますが、mysql クエリで 1 行に制限している場合、行数が 1 かどうかを確認する必要があることに気付きましたか? 結局のところ、返される行は 0 または 1 です。

これが私が現在使用しているコードです(mysqlからmysqliに変換しているためテストされていません):

$query = "SELECT email,auth,username FROM user_list WHERE id = '".$user["id"]."' LIMIT 1";
$query = $mysqli->query($query);

if($query and $query->num_rows() == 1)
{
4

4 に答える 4

1

チェックする必要があるのは、クエリが 0 行以上を返したかどうかだけです。句で指定された以上は返されませんLIMITが、一致が見つからない場合は 0 が返されます。


ところで、MySQLi は、MySQL 4.1+ によって提供される機能にアクセスできるようにする単なる拡張機能です。それはまだMySQLです。

于 2012-07-14T22:44:09.287 に答える
0

LIMITMySQL では、句で指定されたよりも多くの行が返されないことが保証されています。複数の行が与えられることを心配する必要はありません。

于 2012-07-14T22:40:39.553 に答える
0

クエリにはWHEREテーブルの主キーに関する句が含まれているため、複数の行が返されることはありません。
したがって、このクエリでは、LIMIT 1はまったく役に立ちません (ただし、まったく間違っていません)。

私はそれを削除します。

$query = "SELECT email,auth,username FROM user_list WHERE id = '".$user["id"]."'";
$query = $mysqli->query($query);

if($mysqli->errno==0 and $query->num_rows == 1)
{
于 2012-07-14T22:54:29.343 に答える