Запит SQL на додавання та видалення записів

У цій статті ми розберемо, мабуть, одні з найважливішихSQL-запитів. Цезапити на додавання та видалення записів з таблиці бази даних. Оскільки, ДУЖЕ часто доводиться додавати нові записи в таблицю, причому робити це в автоматичному режимі, то даний матеріал обов'язковий до вивчення.
Для початкуSQL-запит на додавання нового запису до таблиці:
INSERT INTO users (login, pass) values('TestUser', '123456')
При додаванні запису спочатку йде команда "INSERT INTO", потім назву таблиці, до якої ми вставляємо запис. Далі йде в круглих дужках назви полів, які хочемо заповнити. А потім у круглих дужках після слова "values" починаємо перераховувати значення тих полів, які ми вибрали. Після виконання цього запиту у нашій таблиці з'явиться новий запис.
Іноді потрібнооновити запис у таблиці, для цього існує наступнийSQL-запит:
UPDATE users SET login = 'TestUser2', pass='1234560' WHERE login='TestUser'
Даний запит є більш складним, тому що він має конструкцію "WHERE", але про неї трохи нижче. Спочатку йде команда "UPDATE", потім ім'я таблиці, а після "SET" ми описуємо значення всіх полів, які хочемо змінити. Було б все просто, але постає питання: "А який саме запис слід оновлювати?". Для цього існує "WHERE". У цьому випадку ми оновлюємо запис, поле "login" має значення "TestUser". Зверніть увагу, якщо таких записів буде кілька, тооновляться абсолютно все! Це дуже важливо розуміти, інакше ви ризикуєте втратити свою таблицю.
Давайте ще трохи поговоримо про "WHERE". Крім простих перевірок на рівність існують так само і нерівності,а також логічні операції:ANDтаOR.
UPDATE users SET login = 'TestUser2', pass='1234560' WHERE id
ДанийSQL-запитоновить ті записи,idяких менше15Іполе "login" має значення "TestUser". Сподіваюся, Ви розібралися з конструкцією "WHERE", тому що це дуже важливо. Саме "WHERE" використовується привибірці записів з таблиць, а це завдання, що найчастіше використовується при роботі з базами даних.
І, насамкінець, простийSQL-запит на видалення записів з таблиці:
DELETE FROM users WHERE login='TestUser2'
Після команди "DELETE FROM" йде ім'я таблиці, де потрібно видалити записи. Далі описуємо конструкцію "WHERE". Якщо запис буде відповідати описаним умовам, він буде видалено. Знову ж таки зверніть увагу, залежно від кількості записів, що задовольняють умові після "WHERE", може відійти будь-яка їх кількість.
Ось Ви і дізналися, як додавати, оновлювати і видаляти записи з таблиці. А в наступній статті я Вас познайомлю з тим, як робити вибірку записів з таблиці, а це є, мабуть, найважливішим при роботі з базами даних.
Додайте до мене в друзіВКонтакте: http://vk.com/myrusakov. Якщо Ви хочете дати оцінку мені та моїй роботі, то напишіть її в моїй групі: http://vk.com /rusakovmy.
Запропонуйте цю статтю друзям:
Якщо Вам сподобався сайт, розмістіть посилання на нього (у себе на сайті, на форумі, в контакті):
Вона виглядає ось так:
Коментарі ( 35 ):
А як зробити апдейт таблиці так щоб коли людина відкрила форму на сайті, то у неї відображалася вжевнесена інформація, як вконтакте. хоче людина відредагувати дані про себе, то там пишуться вже існуючі дані. Ну або анологічно phpmyadmin у!
Для цього дізнається спочатку користувач (припустимо, із сесії або GET-параметра). Далі на підставі ID користувача або його логіна робиться вибірка відповідного запису. В результаті виходить масив з усіма даними користувача, які потім просто підставляються у форму.
$result = mysql_query("INSERT INTO information (deiatelnost) VALUES ('$deiatelnost') WHERE login='$login' ") Коли я роблю запит із зазначенням сесійного логіну, мені видає таку помилку: ; check the manual that corresponds to your MySQL server version for the right syntax to used near 'WHERE login='мій логін'' at line 1
Спробуйте замість "мій логін" підставити "mylogin".
"Мій логін" - це помилка. а взагалі там стоїть не "мій логін" а мій логін англійською!
$result = mysql_query("INSERT INTO `information` (`deiatelnost`) VALUES ('$deiatelnost') WHERE `login`='$login'") Спробуйте такий запит із зворотними лапками.
Різниці немає. Але я спробував помилка взагалі не щодо синтаксичних помилок. я взагалі таких запитів раніше не писав. тому не знаю. та взагалі з високонавантаженими системами не працював.
Запит правильний на 100%. Єдине, що, можливо, змінна $login некоректна приходить. Але це вже вам краще знати. Якщо з нею все добре, тоді проблема в структурі таблиці (назви таблиці та її полів, типи полів, допустимі значення та інше).
Про Cron чекатиму вашої сатьї, так як я не можу з нею розібратися, а вона мені дуже необхідна для онлайн користувачів =)
Михайле! Знову зіткнувся із проблемою. пишу запит надодавання інформації зареєстрованим користувачем саме його запису до нього в рядок. $res = mysql_query("INSERT INTO information (deiatelnost) VALUES ('$deiatelnost') WHERE login='$login'"); Цим запитом просто не хоче додавати запис. а ось якщо я вводжу той же запит, але вже без login="$login" то все додається але відповідно без логіну, і вже отже витягти ці дані для конкретного користувача просто немає можливості. що роблю не так? Можу скинути повний код action на пошту. дякую заздалегідь =)
Постараюся пояснити, що Ви хочете: "Я хочу додати запис до існуючого запису". Вам не здається, що це дивно? Якщо Вам потрібно оновлювати запис, використовуйте команду UPDATE.
Для таких випадків у таблиці роблять поле user_id, в якому міститься id того користувача, який додав цей запис. Все, що я писав раніше, залишається в силі. Ви вимагаєте від MySQL абсурду, який він виконати не зможе.