有人可以告诉我为什么mysql_result($)
会返回3而不是1或0,并且如果有更好的函数来验证检索函数SELECT
是否返回某些内容(如果id存在)以及如何将其存储在变量上。谢谢。
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
$select = mysql_query("SELECT `id` FROM `users` WHERE `username`='$username' AND `password`='$password'");
echo mysql_result($select,0);
if (mysql_result($select, 0) == '1'){
echo "True";
}else
echo "False";
答案 0 :(得分:0)
$db = new DB_CONNECT();
$select = mysql_query("SELECT `id` FROM `users` WHERE `username`='$username' AND `password`='$password'");
$result = mysql_result($select);
echo var_dump($result); // will help you debug the your queries,
另外,检查您是否已将自动增量设置为您的表,也许您具有相同ID的相同用户名/密码。
答案 1 :(得分:0)
你可以使用mysql_num_rows,它会返回查询中的行数,我在这里给你举个例子:
public function numberRows($id) {
$result = mysql_query("SELECT * from table WHERE id = '$id'");
$no_of_rows = mysql_num_rows($result);
if ($no_of_rows > 0) {
// there is data
return true;
} else {
// there is no data
return false;
}
}
答案 2 :(得分:0)
我认为@php NoOb有一个观点:
require_once __DIR__ . '/db_connect.php';
$db = new DB_CONNECT();
$select = mysql_query("SELECT count(distinct `id`) FROM `users` WHERE `username`='$username' AND `password`='$password'");
echo mysql_result($select,0);
if (mysql_result($select, 0) == '1'){
echo "True";
}else
echo "False";
n.b。 DISTINCT和COUNT。其余的应该解决这个问题。 可能有帮助。欢呼声。
答案 3 :(得分:0)
我会这样做:
require_once DIR . '/db_connect.php';
$db = new DB_CONNECT();
$select = mysql_query("SELECT id
FROM users
WHERE username
='$username' AND password
='$password'");
if (mysql_num_rows($select) == '1'){
echo "True";
}else
echo "False";
如果您需要返回结果的值,请使用不同的方法。