我想做一个非常简单的任务:检查插入的id是否与mysql数据库中找到的id匹配。如果不匹配,将出现一个警告框,显示无效的ID消息。我遇到的问题是我的脚本ALWAYS返回发现,即使数据库中不存在id。这是我的剧本,不知道出了什么问题?
PHP SCRIPT:
<?php
//connect to server....
$id = $_GET["id"];
$query = 'SELECT * from users where id = $id';
$result = mysql_query($query) or trigger_error(mysql_error().$query);
if (empty($result))
{
$response = "notfound";
echo $response;
}
else
{
$response = "found";
echo $response;
}
// Close connection to the database
mysql_close($con);
?>
答案 0 :(得分:2)
您在查询分配中使用单引号而不是双引号。您必须使用双引号或字符串连接。
$query = "SELECT * from users where id = $id";
或强>
$query = 'SELECT * from users where id = ' . $id;
你也可能在插入中执行此操作,这就是为什么它总是被'找到'。
答案 1 :(得分:1)
尝试:
$query = 'SELECT * from users where id = '.(int) $id; $result = mysql_query($query) or trigger_error(mysql_error().$query); $num_rows = mysql_num_rows($result); if($num_rows > 0) { echo "found"; } else { echo "not found"; }
答案 2 :(得分:0)
我不熟悉php语法,但是你可以将if条件替换成这样的
$result = mysql_query($query) or trigger_error(mysql_error().$query);
if($result)
{
$response = "found";
echo $response;
}
else
{
$response = "notfound";
echo $response;
}