我正在创建一个ajax通知,这是我的系统的一部分,允许用户收藏或存档该通知。问题是下面的PHP代码不起作用,查询中没有错误,因为or die
没有返回任何内容。返回的内容仅为error
。这就是回声。我知道javascript是正确的并且发送了正确的信息,因为我已经检查了网络选项卡以查看。我有什么重大错误吗?
<?php
require_once('.conf.php');
$notid = mysql_real_escape_string($get['notification_id']);
$username = mysql_real_escape_string($_SESSION['uname']);
$action = mysql_real_escape_string($get['action']);
if ($action == 'add') {
$insert = mysql_query("UPDATE updates SET object_fav = 1 WHERE username = '$username' AND id = '$notid'") or die('Could not connect: ' . mysql_error());
echo 'success';
} elseif($action == 'sub') {
$remove = mysql_query("UPDATE updates SET object_fav = 0 WHERE username = '$username' AND id = '$notid'") or die('Could not connect: ' . mysql_error());
echo 'remove';
} else {
echo 'error';
}
?>
答案 0 :(得分:3)
PHP没有名为$get
的默认数组。也许您打算使用the $_GET
superglobal.
$action = mysql_real_escape_string($_GET['action']);
$notid = mysql_real_escape_string($_GET['notification_id']);
如果error
链中的$action
不匹配,则会打印if/else
,因为该变量未正确设置。
确保您在开启display_errors
和error_reporting(E_ALL);
的情况下进行开发。未定义的变量$get
将在屏幕上显示警告。
ini_set('display_errors', 1);
error_reporting(E_ALL);