Loading:

Książka Zend Framework 3. Poradnik Programisty.

Dodawanie rekordów do bazy danych

Poniższy skrypt demonstruje jak wstawić dane z formularza do bazy danych

Na początku tworzymy tabele w bazie SQL

Sprawdzamy czy do pliku przesłane zostały zmienne, jeżeli tak to dodajemy dane jeśli nie to wyświetlamy formularz

Następnie parsujemy dane przesłane z formularza zapobiegnie to możliwości włamania poprzez SQL injection

Łączymy się z bazą danych

Wykonujemy zapytanie insert czyli dodające

Następnie sprawdzamy czy dodanie powiodło się czy też nie



Napisz Artykuł

Listing

// Kod  SQL do stworzenia tabeli
create table pracownicy
( id int unsigned not null auto_increment primary key,
  imie char(50) not null,
  nazwisko char(50) not null,
);
<?php
// Sprawdzamy czy do pliku index.php przesłane zostały dane odpowiada za to funkcja empty która sprawdza czy w zmiennej $_POST['temat'] sa jakieś dane
// Poniższa linia oznacza: jeżeli zmienna $_POST['temat'] i $_POST['tresc'] są puste wykonaj działanie
if(empty($_POST['temat'])&&empty($_POST['tresc'])){
// jeżeli do liku nie przesłane zostały żadne dane wyświetlamy formularz
?>
<form action="test.php" method="post">
Imie: <input type="text" value="" name="imie" /><br />
Nazwisko <textarea name="nazwisko"></textarea><br />
<input type="submit" value="Wyslij" />
</form>
<?php
// Jeżeli dane z formularza zostaną wysłane wykona się kod zawarty w klamrach warunku else
}else{
function lacz_bd()
{  
  $db = new mysqli('localhost', 'uzytkownik', 'haslo', 'nazwa_bazy');  
    if (! $db)
      return false;
   $db->autocommit(TRUE);
   return $db;
}
$imie = $_POST['imie'];
$imie = addslashes($imie); // zawsze pamiętajmy aby dane były parsowane. Funkcja addslashes dodaje znak przed cudzysłowami dzięki temu nie musimy się obawiać ze zmienna zaszkodzi naszej bazie.
$nazwisko = $_POST['nazwisko'];
$nazwisko = addslashes($nazwisko);
//połączenie z bazą
$db = lacz_bd();
//zapytanie dodające zmienne $imie i $nazwisko do bazy
$zapytanie = "insert into pracownicy (id, imie, nazwisko) values ('', '$imie', '$nazwisko')";
// wykonanie dodawania do bazy
$wynik = $db->query($zapytanie);
        //sprawdzenie czy powiodło się dodawanie
        if($wynik)      echo 'Dodano nowy rekord';
        else            echo 'Błąd podczas dodawania';
}
?>


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=64

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
a gdzie filtracja danych html'a?? co jesli ktos zrobi xss?? artykuł niedopracowany!
autor: akacja | 5187 | 2010-02-15 20:40:12


masz racje skrypcik miał być prosty ale jest narażony na Cross-site scripting ja używam tego po przecinku podajesz dozwolone tagi
autor: igor | 5192 | 2010-02-15 21:12:15


    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors