我有这段代码:
$local_id = $_GET['id'];
$sql = dbquery("SELECT * FROM `videos` WHERE `id` = ".$local_id." LIMIT 0, 1");
while($row = mysql_fetch_array($sql)){
$video_id = $row["youtube_id"];
// the rest
}
如何检查数据库中是否存在$ local_id并显示错误?
答案 0 :(得分:4)
if(mysql_num_rows($sql) == 0) {
//Show error
}
答案 1 :(得分:1)
您可以使用以下查询:
"SELECT COUNT(*) FROM `videos` WHERE `id` = ".mysql_real_escape_string($local_id)
此查询将返回一个数字:与您的查询匹配的记录数。如果这是零,您肯定知道没有具有此ID的记录。
这比发布的其他解决方案更优化,以防您只想检查是否存在ID ,并且不需要数据(如果您使用SELECT * ...
,则所有数据将不必要地从MySQL发送给你)。否则,mysql_num_rows()
是最佳选择,因为 @Ryan Doherty 正确发布。
确保始终转义来自外部的数据(这次是GET),然后再将其放入查询(MySQL mysql_real_escape_string()
)。
如果您没有这样做,则可能成为SQL Injection的受害者。
答案 2 :(得分:1)
$sql = dbquery("select count(*) from videos where id = ".$local_id." LIMIT 0, 1");
$row = mysql_fetch_row($sql);
if($row[0] == 0)
echo 'error';
答案 3 :(得分:0)
你可以有一个$ count变量并在while循环中递增它。循环后,检查计数,如果为0,则回显错误消息。