PHP更新数据库

时间:2013-09-13 09:31:12

标签: php sql database post

我遇到以下代码更新数据库的问题。没有错误,我知道它不是数据库,因为我有另一个'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;

任何人都可以帮忙吗?

6 个答案:

答案 0 :(得分:2)

这个

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

应该是

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

我想。

答案 1 :(得分:1)

基本上不使用变量插入此代码:

mysql_query("UPDATE `Level1` SET `Deaths`= '".$deaths."' WHERE DeathID= ".$id.");

答案 2 :(得分:0)

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

应该是

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

答案 3 :(得分:0)

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

这里的点被解释为caracter而不是连接运算符,因此update将更新每个具有id ='.value.'的Death,它不存在于数据库中,然后没有任何反应。

替换为:

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

由此:

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

答案 4 :(得分:0)

首先尝试回显变量,但不需要'。$ id。' (实际上它应该是'“。$ if。”')你可以写死亡='$ id'或死亡='$ deaths'应该是正确的。

答案 5 :(得分:0)

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

$ sql =“UPDATE Level01 SET Deaths ='$ id'WHERERE DeathID ='$ deaths'”;