Translate

Поиск по этому блогу

вторник, 8 августа 2017 г.

Создание Базы Данных на OpenServer

При изучении PHP по книгам и руководствам часто возникают проблемы с созданием базы данных (далее - БД) при работе с OpenSrver. Я решил рассмотреть этот вопрос по шагам. И так, приступаем!
  1. Открываем КС - командную строку и переходим в директорию БД OpenServer
    cd C:\OpenServer\modules\database\MariaDB-5.5\bin
    Соединяемся с БД - mysql -u root
    Получаем подтверждение об установленном соединении или повторяем все с начала.

  2. Для просмотра уже существующих БД набираем SHOW DATABASES;

  3. Для работы и перехода к существующей БД - набираемuse name_database;name_database - имя уже существующей БД.ИЛИ создаем новую БД с помощью команды CREATE DATABASE name_database;
    набираемuse name_database; для работы с вновь созданной базой данных

  4. Создаем таблицу в нашей БД, следующей командой:
    CREATE TABLE `aliens_abduction` (
    `first_name` VARCHAR(30) ,
    `last_name` VARCHAR(30) ,
    `whеп_it_hаррепеd` varchar(30) ,
    `hоw_lопg` VARCHAR(30) ,
    `how_many` VARCHAR(30) ,
    `alien_description` VARCHAR(lOO) ,
    `what_they_did` VARCHAR(lOO) ,
    `fang_spotted` VARCHAR(lO) ,
    `other` VARCHAR(lOO) ,
    `email` VАRСНАR(50)
    ) ;
    При наборе использовал Гравис - одинарная кавычка (буква Ё в англ раскладке)

  5. Для того, чтобы добавить данные в новую таблицу:
    INSERT INTO alien_abduction (first_name, last_name, when_it_happened, how_long, how_many, alien_description, what_they_did, fang_spotted, other, email)
    VALUES ('Салли', 'Джонс', '3 дня назад', '1 день' ,'четыре', 'зеленые с шестью щупальцами', 'мы просто разговаривали и играли с со6акой' , ' да', ' возможно, я видела вашу собаку, свяжитесь со мной','sally@mail.com');

  6. Для того, чтобы посмотреть все данные в таблице набираем:
    SELECT * FROM aliens_abduction



Теперь нам осталось сделать так, чтобы данные в таблицу добавлялись автоматически рнр-сценарием


  1. На OpenServer в папке domains у нас есть папка с нашим сайтом mysite. Внутри нее есть два файла report.html и report.php.

    report.html


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Aliens Abducted Me - Report an Abduction</title>
      <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
      <h2>Aliens Abducted Me - Report an Abduction</h2>
    
      <p>Share your story of alien abduction:</p>
      <form method="post" action="report.php">
        <label for="firstname">First name:</label>
        <input type="text" name="firstname" /><br />
        <label for="lastname">Last name:</label>
        <input type="text" name="lastname" /><br />
        <label for="email">What is your email address?</label>
        <input type="text" name="email" /><br />
        <label for="whenithappened">When did it happen?</label>
        <input type="text" name="whenithappened" /><br />
        <label for="howlong">How long were you gone?</label>
        <input type="text" name="howlong" /><br />
        <label for="howmany">How many did you see?</label>
        <input type="text" name="howmany" /><br />
        <label for="aliendescription">Describe them:</label>
        <input type="text" name="aliendescription" size="32" /><br />
        <label for="whattheydid">What did they do to you?</label>
        <input type="text" name="whattheydid" size="32" /><br />
        <label for="fangspotted">Have you seen my dog Fang?</label>
        Yes <input name="fangspotted" type="radio" value="yes" />
        No <input name="fangspotted" type="radio" value="no" /><br />
        <img src="fang.jpg" width="100" height="175"
          alt="My abducted dog Fang." /><br />
        <label for="other">Anything else you want to add?</label>
        <textarea name="other"></textarea><br />
        <input type="submit" value="Report Abduction" name="submit" />
      </form>
    </body>
    </html>
    
    


    report.php


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Aliens Abducted Me - Report an Abduction</title>
    </head>
    <body>
      <h2>Aliens Abducted Me - Report an Abduction</h2>
    
    <?php
      $first_name = $_POST['firstname'];
      $last_name = $_POST['lastname'];
      $when_it_happened = $_POST['whenithappened'];
      $how_long = $_POST['howlong'];
      $how_many = $_POST['howmany'];
      $alien_description = $_POST['aliendescription'];
      $what_they_did = $_POST['whattheydid'];
      $fang_spotted = $_POST['fangspotted'];
      $email = $_POST['email'];
      $other = $_POST['other'];
    
      $dbc = mysqli_connect('localhost', 'root', '', 'aliendatabase')
        or die('Error connecting to MySQL server.');
    
      $query = "INSERT INTO alien_abduction (first_name, last_name, when_it_happened, how_long, " .
        "how_many, alien_description, what_they_did, fang_spotted, other, email) " .
        "VALUES ('$first_name', '$last_name', '$when_it_happened', '$how_long', '$how_many', " .
        "'$alien_description', '$what_they_did', '$fang_spotted', '$other', '$email')";
    
      $result = mysqli_query($dbc, $query)
        or die('Error querying database.');
    
      mysqli_close($dbc);
    
      echo 'Thanks for submitting the form.<br />';
      echo 'You were abducted ' . $when_it_happened;
      echo ' and were gone for ' . $how_long . '<br />';
      echo 'Number of aliens: ' . $how_many . '<br />';
      echo 'Describe them: ' . $alien_description . '<br />';
      echo 'The aliens did this: ' . $what_they_did . '<br />';
      echo 'Was Fang there? ' . $fang_spotted . '<br />';
      echo 'Other comments: ' . $other . '<br />';
      echo 'Your email address is ' . $email;
    ?>
    
    </body>
    </html>
    
    

  2. Для соединения с уже созданной базой данных мы создали переменную с запросом:
    $dbc = mysqli_connect('localhost', 'root', '', 'aliendatabase') or die('Error connecting to MySQL server.');
    Первый параметр -localhost остается без изменений, затем идет имя пользователя (в моем случае - root), пароля нет - '' и имя БД - aliendatabase

  3. В следующей перменной мы поместили все действия с данными (куда попадет тот или иной параметр введенный пользователем)
    $query = "INSERT INTO alien_abduction (first_name, last_name, when_it_happened, how_long, " . "how_many, alien_description, what_they_did, fang_spotted, other, email) " . "VALUES ('$first_name', '$last_name', '$when_it_happened', '$how_long', '$how_many', " . "'$alien_description', '$what_they_did', '$fang_spotted', '$other', '$email')";
  4. Запрос к БД - $result = mysqli_query($dbc, $query) or die('Error querying database.');

  5. РНР-функция die () прерывает ход выполнения сценария и выводит сообщение о коде, который выполнить не удалось. Хотя это и не раскрывает всех причин неудачи в подробностях, функция die () все же сообщает нам: что-то случилось и необходимо принимать меры по решению проблемы. Если что-то не так с одним из четырех аргументов, необходимых для соединения функции mysqli_connect ( ) , или сервер баз данных не может быть найден, функция die () останавливает ход выполнения сценария и выводит сообщение об ошибке, которое передается ей в качестве аргумента в скобках.

  6. Функции mysqli_query () необходимо передать в качестве аргумента SQL-запрос в виде РНР-строки (значения переменной $query), для того чтобы произвести добавление данных о похищении космическими пришельцами.

  7. После всего закрываем БД - mysqli_close($dbc);

Более подробно о работе с базой данных смотрите мой пост —Введение в MySQL
                                                                                                                                                             

Комментариев нет:

Отправить комментарий



Хотите освоить самые современные методы написания React приложений? Надоели простые проекты? Нужны курсы, книги, руководства, индивидуальные занятия по React и не только? Хотите стать разработчиком полного цикла, освоить стек MERN, или вы только начинаете свой путь в программировании, и не знаете с чего начать, то пишите через форму связи, подписывайтесь на мой канал в Телеге, вступайте в группу на Facebook.Пишите мне - kolesnikovy70 почта gmail.com