ip в mysql

Павел

Новичок
ip в mysql

Поиском искал... неудачно :(

Вобщем проблема:
Добавляю IP в базу, а добавляется лишь часть от ip.

Видимо надо рабобраться с кавычками и слешами.

Помогите :confused:
 

Фанат

oncle terrible
Команда форума
а теперь объясните мне дружно: при чём здесь кавычки, слеши, и addslashes?
 

SelenIT

IT-лунатик :)
Павел
В каком виде IP записываешь: строкой или числом?

Записывай числом в поле типа unsigned int и проблем быть не должно.
 

Фанат

oncle terrible
Команда форума
Павел
сначала объясни, откуда у тебя в ip адресе взялись кавычки

-~{}~ 16.04.05 22:09:

и слеши
 

Павел

Новичок
Вот.
$query = "INSERT INTO $table VALUES('$ip', '$data')";

$data передается нормально, а $ip ...
Как быть?
 

SelenIT

IT-лунатик :)
Павел
Покажи show create table - может, твой IP просто не помещается в отведенное для него поле.
 

Павел

Новичок
такое чувство что . (точка) работает как разделитель. поскольку в таблицу попадает только часть до точки.
 

SelenIT

IT-лунатик :)
такое чувство, что поле у тебя числовое, а ты пихаешь в него строку.
INET_ATON, [m]ip2long[/m]
 

Фанат

oncle terrible
Команда форума
SelenIT, ты его сознательно запутываешь?


Павел, тебя этот добрый человек уже три раза спросил.

КАКОГО ТИПА И РАЗМЕРА ПОЛЕ, В КОТОРОЕ ТЫ ПИХАЕШЬ IP!!!!

если твоё зрение позволяет тебе различить буквы, которые я тут написал, а интеллектуальное развитие позволяет уловить смысл вопроса, то будь так добр ответить на него.
 

SelenIT

IT-лунатик :)
При вставке:
$query = "INSERT INTO $table VALUES(INET_ATON('$ip'), '$data')";

При выборке (как вариант):
$query = "SELECT INET_NTOA(ip) AS ip1, data FROM $table";

P.S. это в том случае, если моя догадка правильна. Но в любом случае хранить IP в числовом виде, на мой взгляд, удобнее.
 

Павел

Новичок
:))))
Столько непонятных вопросов что начинаю теряться :)
До прятания под кровать думаю не дойдет :)

-~{}~ 16.04.05 22:56:

Разобрался. Вместо VARCHAR(20) стояло INT(12)
 

SelenIT

IT-лунатик :)
Для строкового представления IP, имхо, хватит VARCHAR(15) - 4 группы максимум по 3 цифры + 3 точки. Но вообще на самом деле IP - это как раз целое число, а представление с точками используется в основном для удобства человека.
 
Сверху