我有以下PHP代码应该连接到数据库并更新一些信息。但它没有更新。它没有给出任何错误,它连接得很好... sql语句似乎没有工作,但一切看起来都没问题。
if ($send != "no") {
$db_name = "auctionfinal";
$table_name = "auctions";
$connection = @mysql_connect("auctionfinal.db.6084638.hostedresource.com", "xxxx", "xxxx") or die(mysql_error());
$db = @mysql_select_db($db_name, $connection) or die(mysql_error());
$sql = "UPDATE $table_name SET curbid = '$_POST[price]', nbids = '$totalnbid' WHERE aucname = '$auc' ";
$result = @mysql_query($sql, $connection) or die(mysql_error());
if ($result) {
echo "Thank you! You have bid on the auction for $auc, the current bid is $curbid, there have been $nbids bids on this auction so far.";
}
} else if ($send == "no") {
echo "$user_err";
}
答案 0 :(得分:3)
它没有给出任何错误,因为你告诉PHP忽略错误。从所有mysql函数调用前面删除“@”,你就会得到错误。
答案 1 :(得分:1)
php mysql函数前面的“@”符号可以抑制任何错误。 删除它,然后你会看到是否有任何错误。
答案 2 :(得分:0)
这是使用字符串中的变量扩展所带来的风险之一。
本声明:
$sql = "UPDATE $table_name SET curbid = '$_POST[price]', nbids = '$totalnbid' WHERE aucname = '$auc' ";
...最好写成:
$sql = "UPDATE ".$table_name." SET curbid = '".mysql_real_escape_string($_POST['price'])."', nbids = '".mysql_real_escape_string($totalnbid)."' WHERE aucname = '".mysql_real_escape_string($auc)."' ";