Перейти к содержимому

Реферальная программа Мегаплана


  • Закрытая тема Тема закрыта

Запись и чтение IP в MySQL

#1 Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1
0

Отправлено 21 Март 2011 - 17:02

Небольшая преамбула...

Совсем простая но очень полезная функция для кодирования IP это INET_ATON(), рассмотрим пример
$ip = "INET_ATON('".$_SERVER['REMOTE_ADDR']."')"
mysql_query("UPDATE users SET ip=".$ip." WHERE login='".mysql_real_escape_string($login)."'") or die(mysql_error());

В итоге получим вместо 127.0.0.1 => 2130706433

Функция INET_NTOA() работает наоборот. Но с её реализацией у меня возникли проблемы. Записан код
	$query = mysql_query("SELECT login, hash, INET_NTOA(ip)  FROM users WHERE login='".$_COOKIE['login']."'") or die(mysql_error());
$data = mysql_fetch_assoc($query);

Но значение $data['ip'] пустое. В чем может быть проблема?

Усе, решил проблему! Просто присвоил новое имя для поля ip. Вот такой вот запрос получился
	$query = mysql_query("SELECT login, hash, INET_NTOA(ip) as userIP  FROM users WHERE login='".$_COOKIE['login']."'") or die(mysql_error());
$data = mysql_fetch_assoc($query);

Теперь для получения IP типа 127.0.0.1 я просто обращаюсь к массиву $data вот таким образом $data['userIP']

 

 

  • 0


#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 22 Март 2011 - 18:14

Banderas, ещё бы, конечно поля нужно переназывать, давать им алиасы.
Это очень наглядно просматривается при работе из консоли. Там при подобном запросе поле для вывода IP называлось бы так: INET_NTOA(ip)

Тему закрываю
  • 0


Оформление форума – IPBSkins.ru