PHP / MySQL验证值存在于列中

时间:2014-02-18 08:04:58

标签: php mysql mysqli

我正在使用PHP / MySQL来验证“tokencol”列中是否存在一个值。 “$ token”是我要验证的值,我确信它已正确输入。

以下是我的代码:

$verifytoken = mysql_query("SELECT * from tokens where tokenrow = '$token'");


if(mysql_num_rows($verifytoken) == TRUE) {
     echo "hello";
} else {
    die("Valid token not provided.");
}

我总是得到“未提供有效令牌”。消息而不是“你好”。

我该怎么做才能修复? 感谢

4 个答案:

答案 0 :(得分:3)

mysql_num_rows()返回integer值,而不是Boolean值。因此您尝试的内容基本上是错误的。 所以尝试比较像这样的int值

if(mysql_num_rows($verifytoken) != 0) {
     echo "hello";
} else {
    die("Valid token not provided.");
}

mysql_*函数已从php5.5弃用。因此,请尝试停止使用它并开始使用mysqli_*函数或PDO

答案 1 :(得分:2)

您确定数据库连接正常并且您在tokens表中有该值吗?

尝试使用$verifytoken = mysql_query("SELECT * from tokens where tokenrow = '$token'") or die(mysql_error());

答案 2 :(得分:0)

如果你只需要一定数量的东西,最好这样做:

$verifytoken = mysql_query("SELECT COUNT(*) from tokens where tokenrow = '$token'");

if(mysql_result($verifytoken, 0) > 0) {
     echo "hello";
} else {
    die("Valid token not provided.");
}

使用mysql_num_rows mysql必须为返回的数据准备结构,然后计算结果。使用COUNT,它将直接返回金额。另外,如果您的表格中有一些tokenid列,请执行SELECT COUNT(tokenid)...

答案 3 :(得分:0)

$verifytoken = mysql_query("SELECT * from tokens where tokenrow = '$token'");
if($row_verifytoken = mysql_fetch_assoc($verifytoken))
{
    echo "hello"; 
}
else 
{
    die("Valid token not provided.");
}