我正在尝试从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: ";
}
答案 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;
}
希望这会有所帮助