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

Kwerenda nie chce działać

Object Storage Arubacloud
0 głosów
354 wizyt
pytanie zadane 27 lutego 2016 w SQL, bazy danych przez GaCeL Dyskutant (7,500 p.)
<?php 
require_once "connection.php";

$polaczenie = @new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($polaczenie->connect_error){
	echo 'Nie nawiazano polaczenia z baza danych!';
}
else {
	$login = @$_POST['login'];
	$haslo = @$_POST['haslo'];
	$email = @$_POST['email'];
	$avatar = @$_POST['avatar'];

	$dodaj = "INSERT INTO 'uzytkownicy' ('login', 'password', 'email') VALUES ('$login', '$haslo', '$email')";
	if ($rezultat = $polaczenie->query($dodaj)){
		echo 'Wykonano zapytanie';
	}
	else {
		echo 'Nie mozna wykonac zapytania';
	}
	

	echo 'Nawiazano polaczenie!';
}
?>

Nawiązuje połączenie ale nie chce wykonać kwerendy "Nie mozna wykonac zapytania"

1 odpowiedź

+1 głos
odpowiedź 27 lutego 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
$dodaj = "INSERT INTO 'uzytkownicy' ('login', 'password', 'email') VALUES ('$login', '$haslo', '$email')";

Nazw kolumn i tabel nie zapisuje się w ' a w `

Mała różnica ale istotna, w apostrofach zapisujemy tylko wartości.

PS. Po co Ci tyle tych małp w kodzie?

komentarz 27 lutego 2016 przez GaCeL Dyskutant (7,500 p.)
Nie wiem czemu ale przy POST-ach wyskakiwały mi błędy ale działały.
Jak ma wyglądać wreszcie to zapytanie?
komentarz 27 lutego 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

Może wyskakiwały komunikaty o niezdefiniowanym indeksie? Jeśli tak to wystarczy wykonać to tylko wtedy gdy formularz został wysłany i wtedy wszystko w $_POST będzie. Poza tym... Twoim rozwiązaniem na naprawę błędu/ostrzeżenia jest jego ukrycie? Lekko słabo, lepiej jednak poszukać co to i naprawić ;)

A zapytanie tak jak napisałem - nazwę tabeli i nazwy kolumn zapisz w `, przy wartościach zostaw tak jak masz apostrofy.

komentarz 27 lutego 2016 przez GaCeL Dyskutant (7,500 p.)

To samo dalej.
A błędy przy postach to undefined index, czyli ze jak nic nie wpisalem to tylko to wyskakuje.

Jednak działa, poprawne zapytanie to:

 

$dodaj = "INSERT INTO uzytkownicy (login, password, email) VALUES ('$login', '$haslo', '$email')";

 

komentarz 27 lutego 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
To jak mówiłem, trzeba by sprawdzić czy formularz został wysłany (albo czy te indeksy istnieją) i dopiero próbować je odczytywać.

EDIT: Okej, ale nie tylko takie jest poprawne. Napisałem wyżej że wystarczyłoby zamienić ' na ` tam gdzie je usunąłeś i też powinno bez problemu działać ;)
komentarz 27 lutego 2016 przez GaCeL Dyskutant (7,500 p.)
Tylko teraz zamiast 4 ID dodaje jako 12, 13...
komentarz 27 lutego 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
Zapewne wcześniej były rekordy o takich ID, ty je usunąłeś a teraz jest luka, czyż tak? Jest to jak najbardziej w autonumerowaniu zamierzone. celowe i tak ma być. To kwestia unikalności, id to ma być unikalny identyfikator i nie może się powtarzać bo mogłoby to spowodować nie małe problemy.

Podobne pytania

0 głosów
1 odpowiedź 407 wizyt
0 głosów
2 odpowiedzi 968 wizyt
pytanie zadane 5 października 2018 w SQL, bazy danych przez marekmarekmarek Nowicjusz (180 p.)
0 głosów
1 odpowiedź 324 wizyt
pytanie zadane 30 listopada 2016 w SQL, bazy danych przez Monika510 Nowicjusz (230 p.)

92,550 zapytań

141,392 odpowiedzi

319,519 komentarzy

61,935 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...