0

DBに送信するときにこのエラーが発生する理由は何ですか?

'where 句' の列 'id' が不明です

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

このようなことを試してください。ありがとう

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; 
} 
} 

乾杯!

于 2013-02-05T01:22:32.600 に答える
0

そこはあまりいいようには見えませんが、

まず、そのテーブルに列「id」があることを確認してください。「id」は「Id」でも「ID」でも「iD」でもないことに注意してください。その列があることを完全に確認してもエラーが発生する場合は、引用符を付けて試してください。

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