![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 4.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Na wstępie zaznaczam, że mam bardzo małe pojęcie o bazach danych, więc przepraszam jeśli umieściłem coś nie w tym miejscu. Mam następujący problem. Chciałbym zablokować możliwość dodawania nowych wierszy do bazy danych. Sytuacja wygląda następująco - mam stronę, na której można dodawać komentarze, a skrypt komentarzy jest autorskim skryptem opartym o bazę danych. Ostatnio strona non stop jest spamowana przez te komentarze i chciałbym zablokować możliwość ich dodawania. W samym skrypcie kompletnie się nie orientuję i stąd moje pytanie - czy da się to zrobić z poziomu samej bazy danych poprzez zablokowanie możliwość dodawania nowych wierszy (lub np. wprowadzenie automatycznego usuwania wierszy o jakimś ID)? Z góry dziękuję za wszelkie porady, pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Jeśli idzie o bazę danych to najszybszym rozwiązaniem na pewno będzie:
Jednak spowoduje to, że skrypt prawdopodobnie będzie sypał błędem przy wykonaniu inserta (choć niekoniecznie, być może autor obsłużył wyjątek). A jeśli idzie o skrypt to zalecałbym wprowadzenie captchy. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 4.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
FROM localhost
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 4.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nadal mi coś nie działa, MySQL zwraca komunikat #1142 - GRANT command denied to user 'tu_nazwa_superużytkownika'@'tu_ip' for table 'koment'
Raczej popełniam jakiś beznadziejnie podstawowy błąd, tylko nie wiem jaki... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Niestety nadal mi coś nie działa, MySQL zwraca komunikat #1142 - GRANT command denied to user 'tu_nazwa_superużytkownika'@'tu_ip' for table 'koment' Raczej popełniam jakiś beznadziejnie podstawowy błąd, tylko nie wiem jaki... Nie popełniasz błędu, Twój su nie ma odpowiednich uprawnień do wykonania tej komendy. Więc na bazie tego nie zrobisz, kombinuj ze skryptem. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dodaj jakąś kolumnę NOT NUL z DEFAULTEM. Zapisz, a potem tego DEFAULTA wywal
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 4.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dodanie nowej kolumny (pole_xx) z defaultem:
Wszystkie istniejace rekordy beda miay zapisane tam 0. Zmiana kolumny na NOT NULL bez DEFAUTA:
I już nic nie dodasz istniejącym kodem, bo się wywali, że pole nie może być NULL ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@mmmmmmm:
Na pewno? MySQL przypadkiem nie przepuszcza takich wartości wstawiając (dla liczb) 0? Jedyne co to wyświetla ostrzeżenie typu: Cytat 1 row(s) affected, 1 warning(s): 1364 Field 'test' doesn't have a default value ale rekord zapisuje się do bazy, a w kolumnie test jest wstawiane 0. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 13:36 |