我正在使用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.");
}
我总是得到“未提供有效令牌”。消息而不是“你好”。
我该怎么做才能修复? 感谢
答案 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.");
}