我的AJAX应用程序总是返回“找到”

时间:2011-12-01 04:03:08

标签: php mysql ajax

我想做一个非常简单的任务:检查插入的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);
?>

3 个答案:

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