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

Zapytanie do bazy i znak zapytania

Object Storage Arubacloud
0 głosów
1,261 wizyt
pytanie zadane 14 maja 2017 w SQL, bazy danych przez Bartlomiej Bywalec (2,480 p.)

Mam pytanie kiedy przyrównuję się znakiem zapytania? w jakim momencie można go stosować?

Wytłumaczy mi ktoś?:) Wdzięczny byłbym bardzo :)

np:

$sql = "SELECT * from house where houses.id = ?";

1 odpowiedź

0 głosów
odpowiedź 14 maja 2017 przez Chess Szeryf (76,710 p.)
wybrane 15 maja 2017 przez Bartlomiej
 
Najlepsza

To jest tzw. "bindowanie", zabezpieczenie przed wstrzykiwaniem SQL oraz innymi niebezpieczeństwami. Zastosowanie tej techniki daje większe bezpieczeństwo aplikacji i nie tylko aplikacji.

Dam przykład z rozszerzenia mysqli, jest to również na PDO, tylko jest inna nazwa funkcji.

http://php.net/manual/en/mysqli-stmt.bind-param.php

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

W tym przykładzie masz 4 znaki zapytania. Oznacza to, że później trzeba podać 4 wartości.

Druga linia oznacza kolejno (te sssd): string, string, string, double.

Te zmienne dalej to odpowiedniki tego, co ustaliliśmy. Czyli 1. zmienna to typ string, 2. zmienna to też typ string, 3. zmienna też jest typu string, a ostatnia typu double/float.

komentarz 15 maja 2017 przez Chess Szeryf (76,710 p.)
Foreach pobiera dane z tablicy, gdzie ty masz tam tablicę?
komentarz 15 maja 2017 przez Bartlomiej Bywalec (2,480 p.)
No zapytanei do bazy a pozniej wyniki wypisuje?
komentarz 15 maja 2017 przez Chess Szeryf (76,710 p.)
Jeśli chcesz użyć foreach, to chyba coś musi ci tablicę zwrócić.

Napisz, co ci zwraca print_r($q);
komentarz 15 maja 2017 przez Bartlomiej Bywalec (2,480 p.)
edycja 15 maja 2017 przez Bartlomiej
		$pdo = Database::connect();
		$sql = "SELECT * from comments where attractions.id = ?";
		$q = $pdo->prepare($sql);
		$q->execute(array($id));
		$row = $q->fetch(PDO::FETCH_ASSOC); 

	  foreach($row as $wypisz){
		echo '<div class="row">';
		echo '<div class="col-md-4">';

		echo '<h3>' . $wypisz['author'] . '</h3>';
		echo '<p>'. $row['email'] .'</p>';
    echo '<p>'. $row['comment'] .'</p>';
		echo '</div>';
		echo '</div>'; 
    }

poprawilem ale nie wypisuje?

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\information.php on line 103

komentarz 15 maja 2017 przez Chess Szeryf (76,710 p.)

Radzę poczytać jak działa pętla foreach:

http://php.net/manual/en/control-structures.foreach.php

Napisz po prostu:

foreach($q as $row) {
   echo $row;
}

http://forum.php.pl/php_Invalid_argument_supplied_for_foreach_t72803.html

http://stackoverflow.com/questions/2630013/invalid-argument-supplied-for-foreach

Może tak napisz:

foreach((array)$q as $row) { 
   echo $row; 
}

Zrzutuj na tablicę.

Podobne pytania

0 głosów
1 odpowiedź 2,025 wizyt
pytanie zadane 27 sierpnia 2019 w C i C++ przez soq72630 Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 314 wizyt
pytanie zadane 12 kwietnia 2022 w SQL, bazy danych przez Piotr Popławski Użytkownik (610 p.)
0 głosów
1 odpowiedź 359 wizyt
pytanie zadane 10 maja 2022 w SQL, bazy danych przez alpha.netrunner Gaduła (4,690 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...