我想知道我写的表是否正确,它似乎失败了。
while($n != 1)
{
$randstring = "live_".RandomString();
echo "<br>".$username."<br>";
echo $randstring."<br>";
$idcheck = mysql_query("SELECT * FROM streamer_ids WHERE streamer_id='".$randstring."'"); //check for matching random strings
if (!(mysql_num_rows($idcheck)>0))
{
$n=1; //It has found a random string that does not match.
}
}
//if it has reached this far, it has a unique id. Now that id is being written to the database.
$temp = mysql_query("INSERT INTO streamer_ids (username,streamer_id,premium) VALUES(".$username.",".$randstring.","0")");
$temp->closeCursor();请注意,最后一部分是严重屠宰,这是我需要帮助。
发布于 2010-12-09 12:08:37
您的insert语句中似乎缺少字符串分隔符。
也就是说。
$temp = mysql_query("INSERT INTO streamer_ids (username,streamer_id,premium) VALUES('".$username."','".$randstring."','0')");
此外,我不知道SQL值从何而来,但您可能应该对其进行清理,以防止$username注入。也就是说,在上面运行addslashes。
发布于 2010-12-09 12:30:40
您可以将您的插入逻辑放入if row_count >0子句中,但您也会收到错误,因为您使用字符串连接而不是参数生成查询。使用参数,它将work=)您当前的代码是非常危险的。
此外,您的select *语句可以替换为select count(*),这将使您的逻辑更加清晰,因为您将只从db请求所需的数据,在本例中,无论是否有行。
https://stackoverflow.com/questions/4394723
复制相似问题