• 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

VPS Starter Arubacloud
0 głosów
1,238 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ź 1,947 wizyt
pytanie zadane 27 sierpnia 2019 w C i C++ przez soq72630 Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 292 wizyt
pytanie zadane 12 kwietnia 2022 w SQL, bazy danych przez Piotr Popławski Użytkownik (610 p.)
0 głosów
1 odpowiedź 335 wizyt
pytanie zadane 10 maja 2022 w SQL, bazy danych przez alpha.netrunner Gaduła (4,690 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...