使用PHP中的变量进行MySQL更新

时间:2014-03-23 06:51:31

标签: php mysql

mysql_connect('localhost', 'root', '')
        or die(mysql_error());
mysql_select_db('shuttle_service_system') 
or die(mysql_error());

$ID_No=$_POST['ID_No'];
$CurrentBalance = $_POST['CurrentBalance'];
$AddedAmount = $_POST['AddedAmount'];
$NewBalance = $CurrentBalance + $AddedAmount;

$sql = ("UPDATE balance
        SET Balance= '$NewBalance' 
        WHERE ID_No= '$ID_No' ");
$result=mysql_query($sql);

if($result){
        echo"Transaction successful!";
} else {
        echo "&nbsp Error";
}

大家好我想尝试使用变量更新数据库中的某些值。当我使用蛮力而不是变量时它会更新。我知道我的变量正常工作,因为我在排队更新之前打印了它们。

2 个答案:

答案 0 :(得分:1)

删除此UPDATE声明

之外的paranthesis
$sql = ("UPDATE balance
        SET Balance= '$NewBalance' 
        WHERE ID_No= '$ID_No' ");

应该是

$sql = "UPDATE balance
        SET Balance= '$NewBalance' 
        WHERE ID_No= '$ID_No' ";

另外,添加此mysql_error()以在查询失败时读取确切的错误。

$result=mysql_query($sql) or die(mysql_error());

mysql_*)扩展程序自PHP 5.5.0起已弃用,将来会被删除。相反,应使用MySQLiPDO_MySQL扩展名。切换到PreparedStatements甚至可以更好地抵御SQL注入攻击!

答案 1 :(得分:1)

您忘记添加(点)符号。

$result = mysql_query("UPDATE balance SET Balance='".$NewBalance."' WHERE ID_No='".$ID_No."';");

这种方法很糟糕,您可能希望阅读this post以防止SQL注入。