내 행의 데이터를 업데이트하려고합니다. 그러나 모든 메시지가 제대로 표시되지만 행이 전혀 변경되지 않습니다. 증가하는 것에 문제가 있다고 생각합니다. 행의 데이터가 문자열이라는 것을 의미합니다. 따라서 ++가 작동하지 않을 수 있습니다. 나는 에코를 사용하여 어떤 데이터가 어떤 데이터 스크립트가 작동 하는지를보기 위해 $ ip, $ lower 등의 데이터가 있는지 확인하고 모든 것이 잘되지만 UPDATE는 그렇지 않다. 이 줄은 그대로 $country_lower
라는 배열 키가 아닌 변수 $country_lower
에 포함 된 키를 찾고SQL 행을 업데이트 할 수 없습니다.
$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_lower에서 얻을 수있는 가치는 무엇입니까? –
'mysql_'을 mysqli_로 변경하면 모든 SQL 주입이 고쳐지지 않으며, 코드는 SQL 주입에 대해 매우 vunerable ** 상태로 유지됩니다. 'geoplugin.net '이 출력을 변경하면 전체 데이터베이스를 파괴 할 수 있습니다. 준비된 문과 변수를 사용하십시오. – h2ooooooo
@ user3184915 "게으른"방법은 쿼리에 삽입하기 전에 ANY 변수에 mysqli_real_escape_string을 사용하는 것입니다. – h2ooooooo