2014-02-18 21 views
0

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

下面是我的代码:“未提供有效的标记”

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


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

我总是得到消息而不是“你好”。

我应该怎么做才能解决? 谢谢

+0

查询'$ verifytoken'的'var_dump'或'print_r'结果并检查'mysql_error'说的是什么。 –

+0

var_dump显示字符串(0)“” – user2248259

回答

2

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

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

+0

你说得对。谢谢。我已经更新了我的回答, – cornelb

0

这是更好的做这样的,如果你只需要toknes量:

$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)...

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."); 
} 
3

mysql_num_rows()返回integer值,而不是Boolean value.so你是想基本上是没错的。 因此,尝试为int值这样

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

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

+0

!= 0表示找不到,对不对? – user2248259

+0

没有。如果是'== 0'则表示未找到,并且表示找到了'!= 0'。因为它没有返回任何行查询返回 – krishna

+0

奇怪......现在显示没有找到该值。 – user2248259