PHP更新将无法正确更新数据库

时间:2012-03-13 01:48:51

标签: php jquery mysql ajax

以下代码是我的ajax通知系统的一部分,由于某种原因,它只能工作50%。当我调用代码时,它会运行,然后回显successremove,但它似乎不会更改数据库值。任何原因?我已经尝试将我的列名称放在引号中,但回显是错误。请帮忙,谢谢!

<?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';
}
?>

我知道这不是javascript,我已经检查了网络标签,它发送了正确的值。

2 个答案:

答案 0 :(得分:2)

如果这是脚本的开头,则表示您尚未调用session_start(),因此$_SESSION['uname']将包含空值。查询成功,因为它在语法上是正确的,但不匹配任何行,因此不执行更新。

session_start();
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']);

答案 1 :(得分:0)

Echo $ insert和$ remove并找到缺少的值。