简单更新php中的两个字段会出错

时间:2014-10-30 17:03:00

标签: php mysql

我正在尝试从php更新mysql数据库中的某些字段。这总是给我错误,我不知道为什么。你能快点看看吗?

         $sqlupdate_ = "UPDATE $db SET city=$city, country=$country WHERE  userIP=$ip;";
              $sqlupdate = mysql_query($sqlupdate_);
              echo $sqlupdate_;

 if($sqlupdate){

      //The query returned true - now do whatever you like here.
      echo 'success';

 }else{

      //The query returned false - you might want to put some sort of error reporting here. Even logging the error to a text file is fine.
      echo "error: ";

 }

2 个答案:

答案 0 :(得分:1)

首先:使用mysqli或PDO,因为mysql函数被删除了。

第二:避免使用转义字符串进行sql注入。

我认为,你的问题是,你的城市,国家和地区都是varchars而不是整数,所以你需要在它们周围添加引号,并且你想要更新你的表而不是你的数据库。

尝试回应您的查询并直接在mysql中运行。

$sqlupdate_ = "UPDATE " . mysqli_real_escape_string($link, $db). " SET city= '" .mysqli_real_escape_string($link, $city) ."', country='".mysqli_real_escape_string($link, $country)."' WHERE  userIP='".mysqli_real_escape_string($link, $ip)."'";

答案 1 :(得分:-1)

要查看错误,您可以像这样使用try / catch:

<?php

function throw_ex($er){
    throw new Exception($er);
}

try {
    $sqlupdate_ = "UPDATE $db SET city=$city, country=$country WHERE  userIP=$ip;";
    $sqlupdate = mysql_query($sqlupdate_);
    echo $sqlupdate_;

    if($sqlupdate){
        echo 'success';
    } else {
    throw_ex(mysql_error());
}

} catch (Exception $e) {
    echo $e;
}

希望这会有所帮助