sql语句没有更新

时间:2011-06-22 01:02:54

标签: php mysql

我有以下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";
            } 

3 个答案:

答案 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)."' ";