• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodawanie rekordów MySql i PHP

Cloud VPS
0 głosów
2,693 wizyt
pytanie zadane 6 sierpnia 2015 w PHP przez Lukasz Bywalec (2,320 p.)

Witam mam problem z dodaniem nowych rekordów do bazy podczas rejestracji nowego użytkownika na podstawie filmu pana Zelenta o logowaniu. 

Mój kod:

					$sql= "INSERT INTO `uzytkownicy` (`user`, `pass`, `email`) VALUES ($login', '$haslo', '$email)";
					$querty= $mysqli->query($sql);// to jest 42 linia.

a taki błąd mi pokazuje:

Fatal error: Call to a member function query() on null in D:\xampp\htdocs\php\osadnicy\rej.php on line 42

 

znalazłem ten wątek ale nie pomogł: https://forum.pasja-informatyki.pl/37880/dodawanie-rekordu-do-bazy-danych-z-poziomu-php

4 odpowiedzi

+3 głosów
odpowiedź 6 sierpnia 2015 przez Arkadiusz Waluk Ekspert (290,250 p.)

Przede wszystkim masz błąd w zapytaniu. Ostatni nawias powinien wyglądać tak:

('$login', '$haslo', '$email')

Tekst który wysyłamy do bazy zawsze zapisujemy w apostrofach. Tylko jeśli jest to liczba to wtedy nie trzeba apostrofów.

Popraw i sprawdź czy będzie działać.

+2 głosów
odpowiedź 6 sierpnia 2015 przez roque Bywalec (2,160 p.)

Bład Call to a member function query() on null  oznacza, że próbujesz wykonać zapytanie sql bez połączenia do bazy danych, gdzieś jest błąd.

Znajdz fragment kodu, który definiował zmienną $mysqli i zrób dokładnie tak jak na tamtym tutorialu.

Plus popraw zapytanie sql wg. wskazówki Arkadiusz Waluk

Prawdopodobnie definicje $mysqli masz w include_once "connect.php"; jeśli masz taki plik ;-) I oczywiście połączenie do bazy danych musi działać, bo nie dodasz rekordu.

0 głosów
odpowiedź 6 sierpnia 2015 przez Lukasz Bywalec (2,320 p.)
Dobra mam juz działa. trzeba było poprawić te nawiasy i zamiast $mysqli->query() wpisac $polaczenie->quety() bo tak amm zdefiniowane polaczenie. Tak to jest jak sie robi wszystko an szybko ;)

 

EDIT

Nie wywala błędu ale za to nie dodaje rekordów w bazie danych.
komentarz 6 sierpnia 2015 przez Boshi VIP (100,240 p.)
To sobie wyprintuj zapytanie i zobacz gdzie jest błąd.
komentarz 6 sierpnia 2015 przez Comandeer Guru (607,060 p.)
Albo po prostu zastosuj http://php.net/mysqli_error
0 głosów
odpowiedź 7 sierpnia 2015 przez Lukasz Bywalec (2,320 p.)
edycja 7 sierpnia 2015 przez Lukasz

Teraz mam taki kod, zeby pokazywało blędy

$sql= "INSERT INTO 'uzytkownicy' (`user`, `pass`, `email`) VALUES ('$login', '$haslo', '$email')";
					if(!$querty= $polaczenie->query($sql))
						{
							printf("Errormessage: %s\n", mysqli_error($polaczenie));
						}

i pokazuje taki błąd

Errormessage: 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 ''uzytkownicy' (`user`, `pass`, `email`) VALUES ('Kalafior', 'Zielony', 'tralala@' at line 1

Values jakie są to te podane przy rejestracji a baza danych to z filmów pana Zelenta

nie mam pojęcia czemu nie działa

 

EDIT:

juz jest ok apostrofy zmienilem na `1

komentarz 7 sierpnia 2015 przez roque Bywalec (2,160 p.)
no widzisz ;-)

Wspominałem o tych apostrfach, dobrze, że już działa ;-)
komentarz 7 sierpnia 2015 przez Lukasz Bywalec (2,320 p.)
te apostrofy to chodziło o to ze $zmienne mialy byc w ' ' normalych a tabela uzytkownicy w tych odwroconych (la lewo od 1)

Podobne pytania

+1 głos
4 odpowiedzi 749 wizyt
+1 głos
1 odpowiedź 534 wizyt
0 głosów
1 odpowiedź 304 wizyt

93,454 zapytań

142,448 odpowiedzi

322,717 komentarzy

62,832 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...