PHP - uložení dat z formuláře do MySQL
Ve druhé lekci vytvoříme v souboru index.html jednoduchý formulář, který pošle vyplněná data do souboru insert.php a ten je uloží do databáze MySQL.
V databázi MySQL nejprve vytvoříme novou tabulku s názvem adresar, která obsahuje sloupce id, jmeno, prijmeni, email a datum. Přes phpMyAdmin stačí v pravé části zvolit Nová tabulka a nastavit parametry dle obrázku v úvodu článku, případně můžete použít rovnou SQL dotaz:
CREATE TABLE adresar (
id SMALLINT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
jmeno varchar(30) NOT NULL,
prijmeni varchar(30) NOT NULL,
email varchar(30) NOT NULL,
datum TIMESTAMP
)
Část zdrojového kódu souboru index.html s formulářem, který vyplněná data předá ke zpracování do souboru insert.php:
[html]
<form action="insert.php" method="post">
Jmeno: <input type="text" name="jmeno">
Prijmeni: <input type="text" name="prijmeni">
Email: <input type="text" name="email">
<input type="submit" value="Odeslat">
</form>
[/html]
Zdrojový kód souboru insert.php
<?php
// pripojeni k db
include 'connect.php';
//specifikovani kodovani, zde na utf8_general_ci
mysqli_query("SET NAMES 'utf8_general_ci'");
//definovani promennych z formulare a ochrana proti SQL injection
$jmeno = mysqli_real_escape_string($con, $_POST['jmeno']);
$prijmeni = mysqli_real_escape_string($con, $_POST['prijmeni']);
$email = mysqli_real_escape_string($con, $_POST['email']);
//sestaveni SQL dotazu
$sql="INSERT INTO adresar (jmeno, prijmeni, email)
VALUES ('$jmeno', '$prijmeni', '$email')";
//podminka proti vlozeni nevyplneneho jmena a prijmeni do db
if (empty($_POST['jmeno'] && $_POST['prijmeni']))
echo 'Je potreba vyplnit jmeno a prijmeni!';
//pokud je vse v poradku, provest ulozeni dat do db
elseif (mysqli_query($con,$sql)) {
echo "1 zaznam pridan";
echo '<br/><a href="index.php">Zpet do formulare</a>';
die('. ' . mysqli_error($con));
}
//uzavreni spojeni do db
mysqli_close($con);
?>
PS: V dnešní době se však zajímejte o PDO a tento článek berte jako lehký úvod do této problematiky