Zapytanie przygotowane: wartości ze zmiennych
Dodawanie, zmiana i usuwanie danych z PHP - PHP i MySQL: strony z bazą danych (PHP i MySQL)
Gdy wartości pochodzą ze zmiennych (a zwłaszcza z formularza), nie wklejaj ich do tekstu zapytania. mysqli_prepare przygotowuje zapytanie ze znakami zapytania w miejscu wartości, mysqli_stmt_bind_param podstawia zmienne (typy: s = tekst, i = liczba całkowita, d = liczba z przecinkiem), a mysqli_stmt_execute je wykonuje. Apostrof w tytule niczego wtedy nie zepsuje, a złośliwy tekst nie zmieni zapytania (ochrona przed SQL injection).
<?php
$db = mysqli_connect("localhost", "root", "", "kino");
$title = "Ocean's Eleven";
$genre = "komedia";
$minutes = 116;
$rating = 7.8;
$stmt = mysqli_prepare($db, "INSERT INTO filmy (tytul, gatunek, czas, ocena) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, "ssid", $title, $genre, $minutes, $rating);
mysqli_stmt_execute($stmt);
echo "<p>Dodano: " . htmlspecialchars($title) . "</p>";
$result = mysqli_query($db, "SELECT tytul, czas, ocena FROM filmy");
while ($row = mysqli_fetch_assoc($result)) {
echo "<p>" . $row["tytul"] . ", " . $row["czas"] . " min, ocena " . $row["ocena"] . "</p>";
}
mysqli_close($db);Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu PHP i MySQL: strony z bazą danych·Zaloguj się, aby zapisać postęp na koncie.