1

我在使用以下代码更新数据库时遇到问题。没有错误,而且我知道这不是数据库,因为我有另一个“GET”脚本,它使用相同的 &con 信息并从数据库返回数据就好了。但是,数据库永远不会更新。

 <?php
    define("DB_DSN","xxx");
    define("DB_HOST","xxx");
    define("DB_USER","xxx");
    define("DB_PASS","xxx");

    $con = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('Could not connect: ' .mysql_error());
    mysql_select_db(DB_DSN) or die('Could not select database');    
    $id = base64_decode($_POST["id"]);
    $deaths = base64_decode($_POST["deaths"]);
    $sql = "UPDATE Level01 SET Deaths =' . $id .' WHERE DeathID= ' . $deaths . '" ;     
    $uresult = mysql_query($sql,$con);
    if(! $uresult )
    {
      die('Could not update data: ' . mysql_error());
    }
    echo "Updated data successfully\n";
    mysql_close($con);
    exit;

有人可以帮忙吗??

4

6 回答 6

2

这个

"UPDATE Level01 SET Deaths =' . $id .' WHERE DeathID= ' . $deaths . '" ;  

应该

"UPDATE Level01 SET Deaths ='" . $deaths . "' WHERE DeathID= " . $id . " ;  

我认为。

于 2013-09-13T09:33:07.687 回答
1

基本上在不使用变量的情况下插入此代码:

mysql_query("UPDATE `Level1` SET `Deaths`= '".$deaths."' WHERE DeathID= ".$id.");
于 2014-01-16T12:23:10.420 回答
0

首先尝试回显您的变量,您不需要'.$id。' (实际上应该是 '".$id."')你可以写 Deaths = '$id' 或者 Deaths = '$deaths' 应该是正确的。

于 2013-09-13T09:35:34.950 回答
0
$sql = "UPDATE Level01 SET Deaths =' . $id .' WHERE DeathID= ' . $deaths . '" ;

应该

$sql = "UPDATE Level01 SET Deaths ='" . $deaths . "' WHERE DeathID= '" . $id . "'";
于 2013-09-13T09:33:01.267 回答
0

我建议这样做echo $sql ;,然后你就会知道你的错误:)

点在这里被解释为字符而不是连接运算符,因此更新将更新每个具有的死亡id ='.value.',它在数据库中不存在,然后什么也没有发生。

替换这个:

$sql = "UPDATE Level01 SET Deaths =' . $id .' WHERE DeathID= ' . $deaths . '" ;

这样 :

$sql = "UPDATE Level01 SET Deaths ='$id' WHERE DeathID= '$deaths'" ;
于 2013-09-13T09:33:28.907 回答
0

嗨,请从查询中删除点,如下所示,它将解决问题。

$sql = "UPDATE Level01 SET Deaths ='$id' WHERE DeathID= '$deaths'" ;

于 2013-09-13T09:40:45.190 回答