środa, 19 września 2018

MySQL - dodawanie danych do bazy

MySQL - Wstawianie danych


Aby wstawić dane do tabeli MySQL, należy użyć polecenia SQL INSERT INTO. Możesz wstawić dane do tabeli MySQL za pomocą polecenia mysql> lub za pomocą dowolnego skryptu, takiego jak PHP.
Składnia
Oto ogólna składnia SQL polecenia INSERT INTO w celu wstawienia danych do tabeli MySQL -
INSERT INTO nazwa_tabeli ( pole1, pole2,...poleN )
   VALUES
   ( wartość1, wartość2,...wartośćN );
Aby wstawić typy danych tekstowych, wymagane jest zachowanie wszystkich wartości w podwójnych lub pojedynczych cudzysłowach. Na przykład "wartość" .

Wstawianie danych z wiersza polecenia

Aby wstawić dane z wiersza poleceń, użyjemy polecenia SQL INSERT INTO do wstawienia danych do tabeli MySQL kurs_tbl.
Przykład
Poniższy przykład spowoduje utworzenie 3 rekordów w tabeli kurs_tbl
root@host# mysql -u root -p password;
Enter password:*******
mysql> use KURS;
Database changed

mysql> INSERT INTO kurs_tbl
   ->(kurs_title, kurs_author, submission_date)
   ->VALUES
   ->("Nauka PHP", "Strony WWW", NOW());
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO kurs_tbl
   ->(kurs_title, kurs_author, submission_date)
   ->VALUES
   ->("nauka MySQL", "Baza danych", NOW());
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO kurs_tbl
   ->(kurs_title, kurs_author, submission_date)
   ->VALUES
   ->("JAVA Tutorial", "Język programowania",2017-08-01”);
Query OK, 1 row affected (0.01 sec)
mysql>

UWAGA - Należy pamiętać, że wszystkie znaki strzałki (->) nie są częścią polecenia SQL. Wskazują nową linię i są tworzone automatycznie przez zapytanie MySQL, naciskając klawisz Enter bez podania średnika na końcu każdej linii polecenia.
W powyższym przykładzie nie podano kolumny kurs_id, ponieważ w momencie tworzenia tabeli udostępniliśmy opcję AUTO_INCREMENT dla tego pola. Dlatego MySQL dba o automatyczne wstawianie tych identyfikatorów. W tym miejscu funkcja NOW() jest funkcją MySQL, która zwraca bieżącą datę i godzinę.

Wstawianie danych za pomocą skryptu PHP

Możesz użyć tego samego polecenia SQL INSERT INTO do funkcji PHP mysql_query(), aby wstawić dane do tabeli MySQL.
Przykład
Ten przykład pobierze trzy parametry od użytkownika i wstawi je do tabeli MySQL -
<html>

   <head>
      <title>Dodanie rekordu do tabeli</title>
   </head>

   <body>
      <?php
         if(isset($_POST['add'])) {
            $dbhost = 'localhost:3306';
            $dbuser = 'root';
            $dbpass = 'rootpassword';
            $conn = mysql_connect($dbhost, $dbuser, $dbpass);
        
            if(! $conn ) {
               die('Nie można się połączyć: ' . mysql_error());
            }

            if(! get_magic_quotes_gpc() ) {
               $kurs_title = addslashes ($_POST['kurs_title']);
               $kurs_author = addslashes ($_POST['kurs_author']);
            } else {
               $kurs_title = $_POST['kurs_title'];
               $kurs_author = $_POST['kurs_author'];
            }

            $submission_date = $_POST['submission_date'];
  
            $sql = "INSERT INTO kurs_tbl ".
               "(kurs_title,kurs_author, submission_date) "."VALUES ".
               "('$kurs_title','$kurs_author','$submission_date')";
               mysql_select_db('KURS');
            $retval = mysql_query( $sql, $conn );
        
            if(! $retval ) {
               die('Nie można dodać danych: ' . mysql_error());
            }
         
            echo "Dane wprowadzono pomyślnie\n";
            mysql_close($conn);
         } else {
      ?>
  
      <form method = "post" action = "<?php $_PHP_SELF ?>">
         <table width = "600" border = "0" cellspacing = "1" cellpadding = "2">
            <tr>
               <td width = "250">Tytuł kursu</td>
               <td>
                  <input name = "kurs_title" type = "text" id = "kurs_title">
               </td>
            </tr>
        
            <tr>
               <td width = "250">Autor kursu</td>
               <td>
                  <input name = "kurs_author" type = "text" id = "kurs_author">
               </td>
            </tr>
        
            <tr>
               <td width = "250">Submission Date [   yyyy-mm-dd ]</td>
               <td>
                  <input name = "submission_date" type = "text" id = "submission_date">
               </td>
            </tr>
     
            <tr>
               <td width = "250"> </td>
               <td> </td>
            </tr>
        
            <tr>
               <td width = "250"> </td>
               <td>
                  <input name = "add" type = "submit" id = "add"  value = "Dodaj kurs">
               </td>
            </tr>
         </table>
      </form>
   <?php
      }
   ?>
   </body>
</html>

Podczas dodawania danych najlepiej jest użyć funkcji  get_magic_quotes_gpc(), aby sprawdzić, czy aktualna konfiguracja magicznego cytatu jest ustawiona, czy nie. Jeśli ta funkcja zwraca wartość false, użyj funkcji addslashes(), aby dodać ukośniki przed cudzysłowami.
Możesz wykonać wiele weryfikacji, aby sprawdzić, czy wprowadzone dane są poprawne i czy mogą podjąć odpowiednie działania.




Brak komentarzy:

Prześlij komentarz