0

知道为什么我在提交到数据库时可能会收到此错误吗?

'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

4 回答 4

2

您的表(其名称存储在$tablename中)没有名为 的列id。这使得查询失败,并且所有后续数据库函数也将失败。

于 2013-02-05T00:48:33.987 回答
0

那里看起来不太好,

首先确保您在该表中有一个列“id”。并注意“id”不是“Id”也不是“ID”也不是“iD”!在绝对确定您拥有该列但仍然出现错误后,请尝试使用 quatation 标记:

$q = "SELECT * FROM ". $tablename ." WHERE 'id'='". $rand."'";
于 2013-02-05T00:53:30.607 回答
0

尝试这样的事情。谢谢

而($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; 
} 
} 

干杯!

于 2013-02-05T01:22:32.600 回答
0

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

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

于 2020-04-27T19:36:09.207 回答