如何检查数据库中是否保存了变量?

时间:2011-06-24 15:40:16

标签: php mysql database variables

我有这段代码:

$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并显示错误?

4 个答案:

答案 0 :(得分:4)

mysql_num_rows

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,则回显错误消息。