[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создание таблицы с полями без значений.
xxxLOGIATxxx
Имеется примерно такой запрос:

 `bookmark_poll_id` int(9)    UNSIGNED  NOT NULL default '0',


...ну и неколько других примерных строк.

Для меня, как для новичка, NOT NULL говорит о том, что при вставке информации ни одно поле не останется без значений.

Я пишу закладки и нужно сделать такую структуру, чтобы заполнялось значение только одной строки, сейчас это выглядит примерно так:

ID пользователя | ID опроса | ID группы

Пользователь - владелец вкладок, он хочет например добавить себе в закладки не опрос а группу, тоесть ID опроса должно оставаться без значения или быть равно NULL ну или FALSE, не знаю как будет правильно.

Есть конечно вариант убрать NOT NULL из запроса, но я пока что побаиваюсь самоприкладства, потому что пошарив поисковике эту тему мне выдалась только инфа по SQL-инъекциям, а это не есть хорошо. Помогите советом и с постройкой запроса, если кого не затруднит.



Спустя 19 минут, 46 секунд (13.09.2010 - 01:03) xxxLOGIATxxx написал(а):
Вот полный запрос:

    $sql = "
CREATE TABLE `bookmarks` (
`bookmark_id` int(9) UNSIGNED NOT NULL auto_increment,
`bookmark_owner_id` int(9) UNSIGNED NOT NULL default '0',
`bookmark_profile_id` int(9) UNSIGNED NOT NULL default '0',
`bookmark_group_id` int(9) UNSIGNED NOT NULL default '0',
`bookmark_poll_id` int(9) UNSIGNED NOT NULL default '0',
`bookmark_event_id` int(9) UNSIGNED NOT NULL default '0',
PRIMARY KEY (`bookmark_id`)
)
CHARACTER SET {$plugin_db_charset} COLLATE {$plugin_db_collation}
"
;

Спустя 8 минут, 54 секунды (13.09.2010 - 01:12) inpost написал(а):
default '0' - эта строчка говорит о том, какое значение будет в том случае, если добавить строку, но при этом не вносить данные в данную ячейку.
Под NOT NULL понимается то, что поле должно нести в себе какие-либо данные.

Спустя 4 минуты, 19 секунд (13.09.2010 - 01:16) xxxLOGIATxxx написал(а):
Цитата (inpost @ 12.09.2010 - 22:12)
default '0' - эта строчка говорит о том, какое значение будет в том случае, если добавить строку, но при этом не вносить данные в данную ячейку.
Под NOT NULL понимается то, что поле должно нести в себе какие-либо данные.

Тоесть, если использовать INSERT не во всех строках, то они по дефолту принимают значение 0? Спасибо, благодарствую! wink.gif

Спустя 11 минут, 48 секунд (13.09.2010 - 01:28) inpost написал(а):
Делаешь коротко:
mysql_query("INSERT INTO
`bookmark_owner_id` = 'Magistr Yoda',
`bookmark_profile_id`= '17'
"
);

В итоге мы получим: первой ID автоматически заполнется из-за auto_increment, и 2 других поля получат те значения! Остальные поля будут содержать значения "0", так как default="0".

Спустя 3 часа, 11 минут, 4 секунды (13.09.2010 - 04:39) xxxLOGIATxxx написал(а):
Цитата (inpost @ 12.09.2010 - 22:28)
Делаешь коротко:
mysql_query("INSERT INTO
`bookmark_owner_id` = 'Magistr Yoda',
`bookmark_profile_id`= '17'
"
);

В итоге мы получим: первой ID автоматически заполнется из-за auto_increment, и 2 других поля получат те значения! Остальные поля будут содержать значения "0", так как default="0".

Спасибо ещё раз, я себе это так и представлял, просто инфа об инъкциях не очень понравилась, боюсь как бы другие поля не остались дырявыми
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.