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

mysqli->query Nie działa

42 Warsaw Coding Academy
–1 głos
1,664 wizyt
pytanie zadane 2 września 2016 w SQL, bazy danych przez Siudson Nowicjusz (140 p.)
edycja 2 września 2016 przez HaKIM

Witam , Strona łączy się z bazą mysql ,ale w momencie wywołania $result = $connection->query($sql) zostaje zwrócony fałsz , nie wyskakuje żaden komunikat o błędzie czy ktoś wie czym ten problem może być spowodowany ?

korzystałem z Kursu PHP Pana Mirosława:

https://www.youtube.com/watch?v=Pp578w7C9hE

 

<?php
require_once "connect.php";
$user=$_POST['login'];
$password=$_POST['haslo'];

$connection = new mysqli($host,$db_user,$db_password,$db_name);

if($connection->connect_errno==0)
{

$sql="SELECT * FROM konta WHERE Login='$user' AND Hasło='$password'";

if($result = $connection->query($sql))
{



Pozdrawiam i proszę o pomoc.

komentarz 2 września 2016 przez efiku Szeryf (75,160 p.)
Użyj PDO i prepared statements. ;)
1
komentarz 2 września 2016 przez xandros Nałogowiec (29,450 p.)
W oczekiwaniu, aż Event napisze poradnik do PDO łap: http://pastebin.com/Gfq4cFSK
komentarz 2 września 2016 przez MichuDev Pasjonat (20,300 p.)

Sprawdź bazę danych (połączenie, istnienie tabeli, istnienie pól Login i Hasło), oraz sprawdzenie czy w bazie pole z hasłem nazywa się Hasło (może być haslo, itp). Oraz zastosuj się do tego co powiedział efik.

 

komentarz 2 września 2016 przez efiku Szeryf (75,160 p.)
Xandros w 11 linii masz błąd. Jakie set names xd po prostu do połączenia dokleic kodowanie jest w manualu.
komentarz 2 września 2016 przez xandros Nałogowiec (29,450 p.)

Szukam i nie moge znaleźć. Jednyne co znajduję, to ta opcja z dodawaniem set names utf8 przez MYSQL_ATTR_INIT_COMMAND  do połączenia. Ale dzisiaj wysokie ciśnienie, więc skupić się nie moge. =/

komentarz 2 września 2016 przez efiku Szeryf (75,160 p.)
$dsn="mysql:host(...)charset=utf8";
komentarz 2 września 2016 przez xandros Nałogowiec (29,450 p.)
No tak, teraz widze: http://stackoverflow.com/a/4361485

Nie tyle co wrażliwy błąd, co bad practice or sth like that.

1 odpowiedź

0 głosów
odpowiedź 4 września 2016 przez Thomas Frost Bywalec (2,540 p.)
Cześć,

​Musisz przygotować swoje zapytanie i połączyć je z połączeniem do bazy danych:
 

$connection = new mysqli($host,$db_user,$db_password,$db_name);
$stmt = $connection ->prepare("SELECT * FROM konta WHERE Login = ? AND Haslo = ?");
$stmt->bind_param("ss", $user, $password);
$stmt->execute();
$stmt->bind_result($id, $surowce1, $surowce2);
​$stmt->fetch();
$stmt->close();
​$connection->close();
 

Przy bind_result powinieneś mieć tyle zmiennych ile zostanie wyciągniętych.
​Jeśli chcesz wyciągnąć więcej możesz wstawić $stmt->fetch() do pętli while (ponieważ fetch() zwraca true, jeśli zostało coś wyciągnięte, oraz false jeśli nic nie zostało wyciągnięte). Wszystkie dane z bazy danych zostaną wrzucone do zmiennych (lub nadpisane) podanych w bind_param().

Pozdrawiam,
Tomek
komentarz 5 września 2016 przez Pietrak Pasjonat (18,850 p.)
Przede wszystkim nie używaj operatora *.

Podobne pytania

0 głosów
2 odpowiedzi 2,571 wizyt
pytanie zadane 13 grudnia 2015 w SQL, bazy danych przez artimal Gaduła (4,800 p.)
0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 5 sierpnia 2018 w PHP przez hiveplay Początkujący (430 p.)
0 głosów
2 odpowiedzi 573 wizyt

93,381 zapytań

142,380 odpowiedzi

322,536 komentarzy

62,738 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...