MYSQL int(11) знаковый + PHP

12
M
На сайте с 20.08.2004
Offline
376
3349

Столкнулся с такой проблемой что надо было хранить данные дней рождений.

Не учел факта что есть люди младше 70 года. До этого хранил данные в int (11) беззнаковым.

Решил проблему меньше 70 года преобразованием типа int(11) знаковым.

Но теперь при обычной выборке в mysql результат отрицательное число, а через php возвращает 0.

Крутил вертел, на ночь ничего не придумал.

Буду признателен подскажете что делать!

Спасибо.

отец сыночка, лапочки дочки и еще одного сыночка
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

Я лично ничего не понял :)

Давайте на примерах, вы что там вообще храните?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
M
На сайте с 20.08.2004
Offline
376
#2

обычный запрос к бд SELECT user_id, user_birthday FROM user WHERE user_id=1

возвращает

1 -214452000

если делаю через пхп

$query = "SELECT user_id, user_birthday FROM bt_user WHERE user_id= 1"

$result = mysql_query($query)
$row = mysql_fetch_assoc($result)

print_r($row)

результат

array([id]=>1,[user_birthday]=>0)

[Удален]
#3

храните дату в типе date

M
На сайте с 20.08.2004
Offline
376
#4
seodude:
храните дату в типе date

это простое решение.

хотелось бы понять причину текущей проблемы ))

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#5

Сделал у себя:

Array ( [id] => 1 [user] => -214452000 )

всё ок.

Кусок дампа базы дайте.

M
На сайте с 20.08.2004
Offline
376
#6

причем все остальные данные выводятся корректно

[Удален]
#7

Miracle, накомьтесь, возможно вы нарвались на баг пхп.

M
На сайте с 20.08.2004
Offline
376
#8
seodude:
накомьтесь

не понял этого!

Miracle добавил 03.02.2011 в 00:59

10 символов

CREATE TABLE `bt_user` (
`user_id` int(10) unsigned NOT NULL auto_increment,
`user_reputation` int(11) NOT NULL default '100',
`user_reputation2` int(11) default '0',
`user_repa_present` int(11) unsigned default '0',
`user_email` varchar(60) default NULL,
`user_email_confirmed` tinyint(1) unsigned NOT NULL default '0',
`user_pwd` varchar(15) default NULL,
`user_fio` varchar(60) default NULL,
`user_nickname` varchar(31) default NULL,
`user_activity` enum('o','s','c') default 's',
`user_sts` tinyint(3) unsigned default NULL,
`user_level` tinyint(3) unsigned default '0',
`confirm_code` varchar(32) default NULL,
`user_reg_date` datetime default NULL,
`user_av_path` varchar(50) default '/user/av/empty.gif',
`user_ip` varchar(15) default NULL,
`user_last_login` int(11) unsigned default NULL,
`user_last_visit` int(11) unsigned default NULL,
`user_av_enable` tinyint(1) default '0',
`country_id` int(6) default NULL,
`region_id` int(6) unsigned default NULL,
`city_id` int(6) unsigned default NULL,
`user_city_name` varchar(40) default NULL,
`user_country_name` varchar(40) default NULL,
`user_country_code` varchar(3) default NULL,
`user_location` varchar(100) default NULL,
`user_country_code_old` char(3) default NULL,
`user_birthday` int(11) default NULL,
`user_birthday_md` smallint(5) unsigned default NULL,
`user_icq` int(11) unsigned default NULL,
`user_skype` varchar(100) default NULL,
`user_phone` varchar(20) default NULL,
`user_about` text,
`user_talk_qty` smallint(6) unsigned default '0',
`user_talk_comment_qty` smallint(6) unsigned default '0',
`user_friends_qty` smallint(5) unsigned NOT NULL default '0',
`user_friendsTo_qty` smallint(5) unsigned NOT NULL default '0',
`user_pm_new_qty` tinyint(3) unsigned default '0',
`user_pm_out_qty` smallint(5) unsigned default '0',
`user_pm_out_total_qty` int(11) unsigned default NULL,
`user_pm_in_qty` smallint(5) unsigned default '0',
`user_pm_in_total_qty` int(11) unsigned default NULL,
`user_warning_qty` smallint(6) unsigned default '0',
`user_readonly_time` int(11) unsigned default NULL,
`browser_name` varchar(15) default NULL,
`browser_version` varchar(10) default NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_email` (`user_email`),
UNIQUE KEY `user_nickname` (`user_nickname`),
KEY `country_id` (`country_id`),
KEY `region_id` (`region_id`),
KEY `city_id` (`city_id`),
KEY `user_reputation` (`user_reputation`),
KEY `user_birthday_md` (`user_birthday_md`),
KEY `user_sts` (`user_sts`)
) ENGINE=MyISAM AUTO_INCREMENT=47621 DEFAULT CHARSET=utf8;

#
# Dumping data for table bt_user
#

INSERT INTO `bt_user` VALUES (1,3676,2,1603,'admin@mail.ru',1,'1234567','Админ','Админ','o',100,5,'6e41541e5ca7bccc7ab6eea46b37122f','2006-03-13 09:12:44','/user/av/1.jpg','111.111.111.111',1295363900,1295364212,0,NULL,NULL,NULL,'','','','(СССР)','UA',-214452000,317,NULL,'','','',81,1073,5,18,0,8,222,7,346,0,NULL,'chrome','8.0.552.23');
[Удален]
#9
Miracle:
не понял этого!

имел ввиду Знакомьтесь.

стопудово у вас сервер - 32 битная ось, я ведь прав?

M
На сайте с 20.08.2004
Offline
376
#10

там где я это все проверяю - 32 бита

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий