Php 我能';不要更新我的SQL行

Php 我能';不要更新我的SQL行,php,sql,Php,Sql,我试图更新我行中的数据,但我不能,嗯,我得到一个信息,一切都很好,但行并没有改变。我想我做了一些错误的递增,我的意思是,行中的数据是一个字符串,这就是为什么++可能无法处理它。我使用echo查看$ip、$lower等中的数据,查看什么数据脚本可以正常工作,一切正常,但更新不能。这是我的代码: $ip = $_SERVER['REMOTE_ADDR']; echo $ip_for_map; $ip_data_for_map = @json_decode(file_get_contents("htt

我试图更新我行中的数据,但我不能,嗯,我得到一个信息,一切都很好,但行并没有改变。我想我做了一些错误的递增,我的意思是,行中的数据是一个字符串,这就是为什么++可能无法处理它。我使用echo查看$ip、$lower等中的数据,查看什么数据脚本可以正常工作,一切正常,但更新不能。这是我的代码:

$ip = $_SERVER['REMOTE_ADDR'];
echo $ip_for_map;
$ip_data_for_map = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
$country_upper = $ip_data_for_map->geoplugin_countryCode;
echo $country_upper;
$country_lower = strtolower($country_upper);
echo $country_lower;
$main_for_table = 1;
$take_from_sql_country = "SELECT $country_lower FROM table WHERE main='$main_for_table'";
$country_taken_from_table = mysqli_query($dbc, $take_from_sql_country);
$row_sl_map = mysqli_fetch_assoc($country_taken_from_table);
$row_country_data = $row_sl_map['$country_lower']; 
$row_final = $row_country_data++;
$update_countrys_row = "UPDATE table SET $country_lower='$row_final' WHERE main='$main_for_table'";
$update_country_final = mysqli_query($dbc, $update_countrys_row);
if(!$update_country_final)
{
    echo 'BADSHIT';
}
else
{
    echo 'BRAVO';
}
这一行实际上是在寻找一个名为
$country\u lower
的数组键,而不是变量
$country\u lower
中包含的键

删除单引号


还应该注意的是,即使查询结果没有更新(就像错误代码中的情况一样),查询本身仍然成功。

降低$country_的值是多少?神奇地将
mysql_
更改为
mysqli_
并不能修复所有的sql注入,并且您的代码对于sql注入仍然非常脆弱。如果
geoplugin.net
更改了它们的输出,它们可能会破坏您的整个数据库。使用准备好的语句和绑定变量。@user3184915“懒惰”的方法是在将任何变量注入查询之前对其使用
mysqli\u real\u escape\u string
。@h2ooooooo完全忘记了。。。非常感谢。好吧,我照你说的做了,但我这一行还有“0”。它不会递增try
+1
而不是
++
$row_country_data = $row_sl_map['$country_lower'];