我遇到以下代码更新数据库的问题。没有错误,我知道它不是数据库,因为我有另一个'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;
任何人都可以帮忙吗?
答案 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'”;