piątek,
E14 - PHP: Dodawanie rekordów
Aby w pełni prezentowane zrozumieć przykłady, wymagana jest znajomość zagadnień przedstawionych w poprzednich artykułach. Tabela wykorzystana w przykładach jest dostępna do pobrania.
Fromularz HTML
Aby dodawać dane, należy zbudować formularz HTML. Ma on dwa pola typu text do wprowadzenia imienia i nazwiska. Trzeci input to typ submit – przycisk do wysłania formularza. Zastosowana metoda to POST, ponieważ wysłanie formularza wprowadzi trwałe zmiany po stronie serwera.
<form action="" method="post">
<input type="text" name="fname" placeholder="Imię">
<input type="text" name="lname" placeholder="Nazwisko">
<input type="submit" name="t" value="Zapisz">
</form>
Wygląd formularza
Kod PHP
Jeśli istnieje zmienna przesłana z formularzem, nawiązywane jest połączenie z bazą danych i wykonywane są operacje, które prowadzą do zapisania danych. Zastosowano tzw. prepared statements. W zapytaniu przygotowanym za pomocą metody prepare miejsca na zmienne oznaczone są znakiem „?”. Metoda bind_param pozwala przypisać w to miejsce wartości. Jej pierwszy argument określa typ danych, w tym przypadku jest to 'ss' czyli dwa łańcuchy znaków (string).
if(isset($_POST['fname'])) {
$mysqli = new mysqli("host", "user", "pass", "database");
$stmt = $mysqli->prepare("INSERT INTO names (fname, lname) VALUES (?, ?)");
$stmt->bind_param('ss', $_POST['fname'], $_POST['lname']);
$stmt->execute();
header('Location: ' . getenv("HTTP_REFERER"));
}
Efekt finalny
Obydwa fragmenty kodu należy zawrzeć w jednym skrypcie. Dla wygody użytkownika powinno się także dodać kod wyświetlający dane pobrane z bazy, wtedy od razu widoczny jest efekt dodawania kolejnych rekordów.