![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 29.11.2015 Ostrzeżenie: (0%) ![]() ![]() |
Problem powstaje gdy próbuję wykonać dodawanie rekordu do utworzonej wcześniej bazy tabeli.
Niby nie wywala żadnych błędów, lecz gdy podglądam tabelę w PhpAdmin to widzę, że rekord nie został dodany. Kod który skleciłem do tej pory nie wyświetla co to za błąd. oto kod:
W dokumentacji (którą słabo rozumię) mysqli::query mam napisane, że metoda zwraca FALSE w przypadku błędu. 1. Jak wyświetlić jaki to błąd? 2. Ewentualnie co robię źle w tym kodzie ? Ten post edytował codex 29.11.2015, 16:06:52 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli pierwszą wartością jest primary index autoincrement, to ślesz mu nulla, a nie ' '.
A wyświetlenie błędu: zamiast to Ten post edytował Damonsson 29.11.2015, 13:05:30 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 29.11.2015 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem jak pisałeś, teraz nie wywala żadnego komunikatu o błędzie jednak w PhpAdmin przeglądam tą samą tabelę po dodaniu 2 rekordów kolejnych widzę, że:
rekordy = 0; nstępny autoindex = 1; znaczy, że rekordu nie dodano, czy źle rozumiem ten cały PhpAdmin ? ----------------------------------------------------------------------------- Przerobiłem linijkę z wyświetlaniem kodu z powrotem na taki zapis: i teraz wyświetla mi błąd z którego ja nic nie rozumie, poza tym, że mam błąd składni MySql: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' xxxxxxxx, 3, , Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,' at line 1 przy czym xxxxxxxx to jest fraza przypisana do zmiennej $password w moim przykładzie .... Nie rozumie, dla czego server czepia się akurat tego ciągu znaków a pierwszy ($email) mu najwyraźniej odpowiada ? Ten post edytował codex 29.11.2015, 16:05:21 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Polecam poczytać o prepared statements i SQL injection. A przynajmniej stosować mysqli_real_escape_string
Co do problemu: każdy string powinien być opakowany apostrofem lub cudzysłowem - najprawdopodobniej o to się rzuca skrypt. -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 29.11.2015 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem Commander jak pisałeś - opakowałem stringi w cudzysłowy. Teraz wywala mi taki error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'xxxxxxxx, 3, "", ")' at line 1 Słabo kumam angielski. 1. Czy tam nie ma być jakiś przecinek na końcu tej listy parametrów ? 2. Co oznacza ta liczba 3 w komunikacie błędu - liczba parametrów po 'xxxxxxxx' ? - (by się zgadzało) czy zbieg okoliczności 3. Co do mysqli_real_escape_string oraz innych kwestii bezpieczeństwa - przyjdzie czas nie mogę narzucać sobie dodatkowego materiału teraz gdy mi przyszło ogarniać HTML, PHP, JS, CSS i teraz jeszcze zderzenie MySql ![]() w ogóle co do bezpieczeństwa ... na szybko to przypomniał mi się art gynvaela o funkcji printf() użytej w formularzach, myślę, że kwestia bezpieczeństwa to zbyt szeroki temat teraz bo mam tak, że jak zacznę coś to .... ![]() serwis który cos robi, normalnie działa. mam tyle na razie: free poker bez kwestii bezpieczeństwa się nie obejdzie ponieważ można by było oszukiwać jak to w pokerze bywa ![]() ----------------------------------------- edycja: Nie mogę korzystać z wersji mysql mo server wywala błędy, że funkcja jest przestarzała w miejsce tego muszę mysqli podawać. da się to jakoś poustawiać żeby łykał mysql było by łatwiej - jest masa przykładów użycia. Ten post edytował codex 29.11.2015, 17:08:46 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 681 Pomógł: 28 Dołączył: 14.08.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 29.11.2015 Ostrzeżenie: (0%) ![]() ![]() |
Dzieeeeki ci dobry człowieku casperii
![]() Działa wszystko elegancko - sprawdziłem w phpadmin. przepisałem linie jak poleciłeś. Wkleję je jeszcze raz poniżej gdyby ktoś miał podobny problem: oto przerobione linijki kodu:
Ważne, że wystarczy pominąć pole z właściwością auto_increment - nie trzeba stosować NULL ani pustego stringu. Amen. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Jest jeszcze inny zapis, IMO jeszcze bardziej fajny:
Kod INSERT INTO tabela SET pole = value, pole2 = value2
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 06:40 |