'where子句'中的未知列'id'

时间:2013-02-05 00:46:17

标签: php

在提交给数据库时,我知道为什么会出现此错误?

'where子句'中的未知列'id' 警告:mysql_num_rows():提供的参数不是第41行/home/somebody/public_html/sendmessage.php中有效的MySQL结果资源

while($success == FALSE) { 
$rand = rand(100000, 999999); 

$q = "SELECT * FROM $tablename WHERE id = '$rand'"; 
$r = mysql_query($q, $link);

echo mysql_error();


if(mysql_num_rows($r)) { **THIS IS LINE 41** 
    continue; 
} else { 
    $success = TRUE; 
} 
} 

4 个答案:

答案 0 :(得分:2)

您的表名称存储在$tablename中,但没有名为id的列。这会导致查询失败,并且所有后续数据库函数也将失败。

答案 1 :(得分:0)

那里看起来不太好,

首先确保你有一个专栏" id"在那张桌子里。 并注意" id"不是" Id"也不是" ID"也不是" iD"! 在完全确定您拥有该列之后,仍然会收到错误,请尝试使用 quatation marks:

$q = "SELECT * FROM ". $tablename ." WHERE 'id'='". $rand."'";

答案 2 :(得分:0)

尝试这样的事情。感谢

while($ success == FALSE){     $ rand = rand(100000,999999);

$q = "SELECT * FROM ". $tablename ." WHERE id = '". $rand ."'"; 
$r = mysql_query($q, $link);
$num_rows = mysql_num_rows($r);

echo mysql_error();


if($num_rows > 0) { **THIS IS LINE 41** 
    continue; 
} else { 
    $success = TRUE; 
} 
} 

干杯!

答案 3 :(得分:0)

“ where子句”中的未知列“ id”

我也遇到了这个错误,我发现我正在调用另一个没有id属性的表。所以我建议您检查表名