Добавление данных из формы в mysql. Добавление данных в PHP. Добавление записей c помощью phpMyAdmin

В этой статье мы рассмотрим, как использовать PHP для вставки строк в базу данных MySQL.

Шаг 1 — Создание таблицы

Сначала нужно создать таблицу для данных. Это простая процедура, которую можно выполнить с помощью phpMyAdmin в панели управления хостингом.

После входа вы phpMyAdmin вы увидите такой интерфейс:

Создадим в базе данных u266072517_name таблицу с именем Students, нажав на кнопку «Создать таблицу». После этого мы увидите новую страницу, на которой задаем все необходимые параметры таблицы:

Это самая простая настройка, которую можно использовать для таблицы и получения дополнительной информации о структуре таблиц / баз данных.

Параметры столбцов:

  • Name — это имя столбца, которое отображается в верхней части таблицы.
  • Type — тип столбца. Например, мы выбрали varchar, потому что будем вводить строковые значения.
  • Length/Values — используется для указания максимальной длины, которую может иметь запись в этом столбце.
  • Index — мы использовали «Первичный» индекс для поля «ID». При создании таблицы рекомендуется применять в качестве первичного ключа только один столбец. Он используется для перечисления записей в таблице и требуется при настройке таблицы. Я также отметил «A_I», что означает «Auto Increment» — параметр автоматического присваивания номера записей (1,2,3,4 …).
    Нажмите кнопку «Сохранить», и таблица будет создана.

Шаг 2. Написание PHP-кода для вставки данных в MySQL.

Вариант 1 — метод MySQLi

Сначала необходимо установить соединение с базой данных. После этого используем SQL-запрос INSERT. Полный пример кода:

" . mysqli_error($conn); } mysqli_close($conn); ?>

Первая часть кода (3 — 18 строка) предназначена для подключения к базе данных.

Начнем со строки № 19:

$sql = "INSERT INTO Students (name, lastname, email) VALUES ("Thom", "Vial", "[email protected]")";

Она вставляет данные в базу MySQL. INSERT INTO — это оператор, который добавляет данные в указанную таблицу. В нашем примере данные добавляются в таблицу Students.

Далее идет перечисление столбцов, в которые вставляются значения: name, lastname, email. Данные будут добавлены в указанном порядке. Если бы мы написали (email, lastname, name), значения бы были добавлены в другом порядке.

Следующая часть — это оператор VALUES. Здесь мы указываем значения для столбцов: name = Thom, lastname = Vial, email = [email protected].

Мы запустили запрос с использованием PHP-кода. В программном коде SQL-запросы должны быть экранированы кавычками. Следующая часть кода (20-22 строка) проверяет, был ли наш запрос успешным:

if (mysqli_query($conn, $sql)) { echo "New recordcreatedsuccessfully"; }

Этот код выводит сообщение об успешном выполнении запроса.

И последняя часть (22 — 24 строка) отображает уведомление, если запрос не был успешным:

else { echo "Error: " . $sql . "
" . mysqli_error($conn); }

Вариант 2 — метод объекта данных PHP (PDO)

Сначала нам нужно подключиться к базе данных путем создания нового объекта PDO. При работе с ним будем использовать различные методы PDO. Методы объектов вызываются следующим образом:

$the_Object->the_Method();

PDO позволяет «подготовить» SQL-код до его выполнения. SQL-запрос оценивается и «исправляется» перед запуском. Например, простейшая атака с использованием SQL-инъекции может быть выполнена через простое введение SQL-кода в поле формы. Например:

Так как это синтаксически правильный SQL- код, точка с запятой делает DROP DATABASE user_table новым SQL-запросом, и пользовательская таблица удаляется. Подготовленные выражения (связанные переменные) не позволяют, чтобы точка с запятой и кавычки завершали исходный запрос.Поэтому команда DROP DATABASE никогда не будет выполнена.

Чтобы использовать подготовленные выражения, нужно написать новую переменную, которая вызывает метод prepare() объекта базы данных.

Корректный код:

getMessage(); } // Устанавливаем переменные для персоны, которую мы хотим добавить в базу данных $first_Name = "Thom"; $last_Name = "Vial"; $email = "[email protected]"; // Создаем переменную, которая вызывает методобъекта базы данных prepare() // Запрос SQL, который вы хотите выполнить, вводится как параметр, а заполнители пишутся следующим образом:placeholder_name $my_Insert_Statement = $my_Db_Connection->prepare("INSERT INTO Students (name, lastname, email) VALUES (:first_name, :last_name, :email)"); // Теперь мы указываем скрипту, какая переменная ссылается на каждый заполнитель, чтобы использовать метод bindParam() // Первый параметр - это заполнитель в операторе выше, второй - это переменная, на которую он должен ссылаться $my_Insert_Statement->bindParam(:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_Name); $my_Insert_Statement->bindParam(:email, $email); // Выполняем запрос, используя данные, которые только что определили // Метод execute() возвращает TRUE, если он выполнен успешно, и FALSE, если нет, предоставляя вам возможность вывести собственное сообщение if ($my_Insert_Statement->execute()) { echo "New recordcreatedsuccessfully"; } else { echo "Unable to createrecord"; } // В этой точке можно изменить данные переменных и выполнить запрос, чтобы добавить другие данные в базу data to the database $first_Name = "John"; $last_Name = "Smith"; $email = "[email protected]"; $my_Insert_Statement->execute(); // Выполняем снова, когда переменная изменена if ($my_Insert_Statement->execute()) { echo "New recordcreatedsuccessfully"; } else { echo "Unable to createrecord";

В строках 28, 29 и 30 мы используем метод bindParam() объекта базы данных. Также существует метод bindValue(), который сильно отличается от предыдущего.

  • bindParam() — этот метод оценивает данные при достижении метода execute(). В первый раз, когда скрипт достигает метода execute(), он видит, что $first_Name соответствует «Thom». Затем связывает это значение и запускает запрос. Когда скрипт достигает второго метода execute(), он видит, что $first_Name теперь соответствует «John». После чего связывает это значение и снова запускает запрос с новыми значениями. Важно помнить, что мы однажды определили запрос и повторно используем его с разными данными в разных точках скрипта.
  • bindValue() — этот метод оценивает данные, как только достигается bindValue(). Поскольку для $first_Name было установлено значение «Thom», при достижении bindValue(), оно будет использоваться каждый раз, когда вызывается метод execute() для $my_Insert_Statement.
    Обратите внимание, что мы повторно используем переменную $first_Name и присваиваем ей новое значение во второй раз. После запуска скрипта в БД будут указаны оба имени, несмотря на то, что переменная $first_Name в конце скрипта имеет значение «John». Помните, что PHP проверяет весь скрипт, прежде чем запустить его.

Если вы обновите скрипт, чтобы заменить bindParam на bindValue, вы дважды вставите в базу данных «Thom Vial», а John Smith будет проигнорирован.

Шаг 3 — подтверждение успешного выполнения и решение проблем

Если запрос на вставку строк в базу был успешным, мы увидим следующее сообщение:

Устранение распространенных ошибок

MySQLi

В любом другом случае будет отображено сообщение об ошибке. Например, давайте сделаем в коде одну синтаксическую ошибку, и мы получим следующее:

Первая часть кода в порядке, соединение было успешно установлено, но SQL-запрос не прошел.

"Error: INSERT INTO Students {name, lastname, email} VALUES ("Thom", "Vial", "[email protected]") You have an error in your SQL syntax; check the manualthatcorresponds to your MySQL server version for the rightsyntax to use near "{name, lastname, email} VALUES ("Thom", "Vial", "[email protected]")" at line 1"

Была допущена синтаксическая ошибка, которая вызвала сбой скрипта. Ошибка была здесь:

$sql = "INSERT INTO Students {name, lastname, email} VALUES ("Thom", "Vial", "[email protected]")";

Мы использовали фигурные скобки вместо обычных. Это неверно, и скрипт выдал синтаксическую ошибку.

PDO

В строке 7 соединения PDO для режима ошибок установлено «display all exceptions». Если задано другое значение, и запрос не удался бы, мы не получили бы никаких сообщений об ошибках.

Данную настройку следует использовать только при разработке скрипта. При ее активации могут отображаться имена базы данных и таблиц, которые лучше скрыть в целях безопасности. В описанномвыше случае, когда вместо обычных скобок использовались фигурные, сообщение об ошибке выглядит так:

Fatal error: Uncaughtexception "PDOException" with message "SQLSTATE: Syntax error or accessviolation: 1064 You have an error in your SQL syntax; check the manualthatcorresponds to your MySQL server version for the rightsyntax to use near "{name, lastname, email} VALUES ("Thom", "Vial", "[email protected]")" at line 1"

Другие возможные проблемы:

  • Неверно указаны столбцы (несуществующие столбцы или орфографическая ошибка в их именах).
  • Один тип значения присваивается столбцу другого типа. Например, если попытаться вставить число 47 в столбец Name, то получим ошибку. В этом столбце необходимо использовать строковое значение. Но если бы мы указали число в кавычках (например, «47») то сработало бы, потому что это строка.
  • Попытка ввести данные в таблицу, которая не существует. А также допущенная орфографическая ошибка в имени таблицы.

После успешного ввода данных мы увидим, что они добавлены в базу данных. Ниже приведен пример таблицы, в которую добавили данные.

От автора: эх, из песни слов не выкинешь! Но их можно удалить, обновить или вставить другие. Главное, чтобы слова были внесены в базу данных. Сегодня мы расскажем, как происходит запись данных в MySQL и как это сделать правильно, чтобы песня звучала!

Добавление записей c помощью phpMyAdmin

В оболочке phpMyAdmin для администрирования СУБД MySQL реализован «облегченный» функционал добавления новый записей в таблицы базы данных. Из-за своей простоты он идеально подходит как для зеленых «чайников», так и для «ленивых» профессионалов.

Чтобы занести новую информацию в таблицу, следует зайти в программу под правами администратора. Затем в списках слева выбрать нужную базу и таблицу. После чего в верхнем меню перейти через пункт «Вставить».

После этого, чтобы внетсти запись в БД MySQL, заполняем в следующем окне для всех столбцов поля «Значение» и нажимаем внизу «Ок».

На приведенном выше скриншоте видно, что модифицируемая таблица «Animals» состоит из двух столбцов (полей): id и name. Во втором разделе указан тип каждого из столбцов. Нам нужно внести значение только для поля name, поскольку столбец id является первичным ключом, и для него при создании таблицы задан автоинкремент. Это значит, что значение поля id будет генерироваться MySQL автоматически, прибавляя к предыдущему целому числовому значению 1.

Чтобы узнать, какое поле записей данных в MySQL является первичным ключом (primary key), в phpMyAdmin перейдите меню (при выбранной таблице слева в списке) на вкладку верхнего меню «Структура». Здесь приводится описание всех полей таблицы, их тип и дополнительные характеристики.

Вставка данных с помощью SQL-запросов

Но phpMyAdmin – это всего лишь оболочка, а настоящие администраторы «общаются» с сервером MySQL с помощью языка структурированных запросов. То есть «разговаривают» с ним на языке SQL. Так как мы стремимся стать настоящими профессионалами, то немного «окунемся» в изучение команд SQL в рамках рассматриваемой темы. Вот запрос, введя который в поле «SQL», вы создадите такую же базу данных:

CREATE TABLE Animal (id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id));

CREATE TABLE Animal (id MEDIUMINT NOT NULL AUTO_INCREMENT ,

name CHAR (30 ) NOT NULL , PRIMARY KEY (id ) ) ;

После создания таблицы и запись данных в базу MySQL (через вкладку «Вставить») программа сообщит вам, что в animals добавлена строка со значением идентификатора 1. А немного ниже в окне редактора будет выведен код запроса, который за нас сформировала оболочка и отослала серверу БД.

Код запроса:

INSERT INTO `my_db1`.`animal` (`id`, `name`) VALUES (NULL, "Cat");

INSERT INTO ` my_db1 ` . ` animal ` (` id ` , ` name ` ) VALUES (NULL , "Cat" ) ;

Давайте более подробно изучим его. В SQL для вставки новой строки в таблицу используется оператор INSERT. Он сообщает серверу, что в таблицу базы данных (my_db1 . animal) нужно в поля id и name вставить указанные значения (VALUES (NULL, ‘Cat’).

Обратите внимания, что столбцу id мы указываем не числовое значение, а NULL, поскольку для этого поля мы «включили» автозаполнение (автоинкремент).

Как вставить запись с помощью PHP

Все рассмотренное нами является лишь «прелюдией» к основному действу, в котором выходит на сцену «его высочество» серверный язык программирования PHP. Именно благодаря ему MySQL как СУБД получила такое распространение в Сети.
На связке этих двух интернет-технологий построена большая часть всемирной паутины. Куда ни гляньте, везде вы найдете их: в современных CMS, «самописных» движках и на сервере.

Не удивительно, что для записи данных в MySQL PHP предоставляет столько встроенных функций. Но мы остановимся на самых главных из ним. Вот код, который добавляет новое «животное» в таблицу animals. Если сильно постараться, то таким образом можно собрать целый зверинец:)

$con_str=mysql_connect("localhost", "root", "", "db1"); if(mysql_connect("localhost","root")){ echo "Hello!!"; } mysql_select_db("db1",$con_str); $query_str="INSERT INTO `db1`.`animal` (`id`, `name`) VALUES (NULL, "dog")"; mysql_query($query_str); mysql_close();

$ con_str = mysql_connect ("localhost" , "root" , "" , "db1" ) ;

if (mysql_connect ("localhost" , "root" ) ) {

echo "Hello!!" ;

mysql_select_db ("db1" , $ con_str ) ;

$ query_str = "INSERT INTO `db1`.`animal` (`id`, `name`) VALUES (NULL, "dog")" ;

mysql_query ($ query_str ) ;

mysql_close () ;

Этот код нужно вставить в файл PHP и разместить его на стороне сервера.

С помощью функции mysql_connect() мы коннектимся к серверу баз данных MySQL. В качестве аргументов функция принимает хост, имя пользователя СУБД, пароль и название базы, к которой нужно подключиться. У нас указан пустой пароль, поскольку мы используем сервер, установленный на локальной (клиентской) машине.

Для демонстрации всех описанных примеров записи в базу MySQL с помощью PHP мы применяли «джентельменский набор» от Денвера. В него входит локальный сервер Apache, сервер MySQL, phpMyAdmin и еще несколько полезных средств создания и тестирования программного кода.

Затем в логическом блоке if мы проверили наличие соединения к серверу БД. После чего в функции mysql_select_db() мы обозначили базу, к которой будем коннектиться. С помощью функции mysql_query() запустили на выполнение SQL-запрос, записанный в переменную $query_str. И в конце закрыли установленное соединение (функция mysql_close()). Теперь, если мы заглянем в свой зверинец (таблицу animal), то обнаружим там нового «питомца».

Для его записи в MySQL PHP «любезно» предоставил весь необходимый набор функций. Главное, на чем «обжигаются» новички при использовании SQL в программном коде – это неправильное написание запросов, нарушение синтаксиса и чередования знаков для экранирования (кавычек).

Чтобы избежать появления на своей голове лишних «седых» волос, лучше проверять правильность написания запроса с помощью phpMyAdmin. Для этого разместите код SQL в редакторе программы и запустите его на выполнение. Если что-то не так, то приложение начнет «ругаться», выведет сообщение красного цвета и укажет месторасположение ошибки.

Как видите, с помощью MySQL можно и свой зверинец «собрать», и правильно изменить слова любой «песни». И для записи в базу MySQL PHP подходит идеально, поэтому мы советуем вам завести «тесную» дружбу с этим «великим» языком программирования!

В этой статье мы разберём, пожалуй, одни из самых важных SQL-запросов . Это запросы на добавление и удаление записей из таблицы базы данных . Поскольку, ОЧЕНЬ часто приходится добавлять новые записи в таблицу , причём делать это в автоматическом режиме, то данный материал обязателен к изучению.

Для начала SQL-запрос на добавление новой записи в таблицу :

INSERT INTO users (login, pass) values("TestUser", "123456")

При добавлении записи вначале идёт команда "INSERT INTO ", затем название таблицы, в которую мы вставляем запись. Далее идёт в круглых скобках названия полей, которые мы хотим заполнить. А затем в круглых скобках после слова "values " начинаем перечислять значения тех полей, которые мы выбрали. После выполнения этого запроса в нашей таблице появится новая запись.

Иногда требуется обновить запись в таблице , для этого существует следующий SQL-запрос :

UPDATE users SET login = "TestUser2", pass="1234560" WHERE login="TestUser"

Данный запрос является более сложным, так как он имеет конструкцию "WHERE ", но о ней чуть ниже. Вначале идёт команда "UPDATE ", затем имя таблицы, а после "SET " мы описываем значения всех полей, которые мы хотим изменить. Было бы всё просто, но встаёт вопрос: "А какую именно запись следует обновлять? ". Для этого существует "WHERE ". В данном случае мы обновляем запись, поле "login " у которой имеет значение "TestUser ". Обратите внимание, что если таких записей будет несколько, то обновятся абсолютно все ! Это очень важно понимать, иначе Вы рискуете потерять свою таблицу.

Давайте немного ещё поговорим о "WHERE ". Помимо простых проверок на равенство существуют так же и неравенства, а также логические операции: AND и OR .

UPDATE users SET login = "TestUser2", pass="1234560" WHERE id < 15 AND login="TestUser"

Данный SQL-запрос обновит те записи, id которых меньше 15 И поле "login " имеет значение "TestUser ". Надеюсь, Вы разобрались с конструкцией "WHERE ", потому что это очень важно. Именно "WHERE " используется при выборке записей из таблиц , а это самая частоиспользуемая задача при работе с базами данных.

И, напоследок, простой SQL-запрос на удаление записей из таблицы :

DELETE FROM users WHERE login="TestUser2"

После команды "DELETE FROM " идёт имя таблицы, в которой требуется удалить записи. Дальше описываем конструкцию "WHERE". Если запись будет соответствовать описанным условиям, то она будет удалена. Опять же обратите внимание, в зависимости от количества записей, удовлетворяющих условию после "WHERE ", может удалиться любое их количество.

В этом уроке мы научимся вносить в базу данных MySql, данные введенные пользователем в форму. Вы узнаете, как соединяться с базой данных MySql из кода веб страницы, а также обрабатывать и вносить данные в базу.


В прошлом уроке я рассказала Вам о том, как установить Денвер на Ваш компьютер, как создать свою базу данных, пользователя для нее, как создать таблицу в базе данных и мы заполнили ее одной записью.

В этом уроке мы создадим html документ для ввода пользовательской информации, а также php файл-обработчик этой информации, который будет обрабатывать данные, соединяться с базой данных MySql и вставлять туда новые записи.

Переходя от слов к делу давайте начнем.

Добавляем пользовательские данные в базу MySql с веб страницы

Первый этап: создаем html форму для ввода данных

С самого начала нам нужно подготовиться к работе с php, MySql и к тестированию написанного кода на локальном компьютере. Для этого:

1. Запустите Denwer на своем компьютере.

2. Откройте виртуальный диск, созданный Денвером (например у меня это диск “Z”). Откройте его, дальше: home – localhost – www – там создайте новую папку и дайте ей название (я дам название “db1”).

3. Если Вы работаете в Adobe Dreamweaver, то зайдите в менеджер сайтов, там нажмите на кнопку «New», в качестве пути выберите путь до только что созданной папки, в поле выше можете дать имя сайту, после этого нажмите Save – Done. После всего этого в правой панели Adobe Dreamweaver появится Ваша папка.

1. Сейчас мы создадим обычный html файл (назовем его info_form.html и сохраним в только что созданной папке db1) и пропишем там код формы для ввода информации. В нашей таблице users базы данных new_db есть 4 поля, которые мог бы заполнить пользователь (поле id будет заполняться автоматически). Исходя из этого можно создать код следующего вида:

Untitled Document










Здесь в параметре «action» нашей формы прописан файл form.php . Он будет являться файлом обработчиком, который мы создадим далее.

Давайте еще создадим файл style.css для придания стилей нашей форме. Он уже подключен в коде, так что осталось только создать его, поместить в ту же папку, что и html файл и прописать в нем следующий код:

Body{width:400px; margin:0 auto; background:#F8F4B6;} label{display: block; float: left; width: 150px; padding: 0 10px; margin: 18px 0 0; text-align: right;} #submit{float:right; margin:5px 50px 10px 0;}

Теперь форма выглядит следующим образом:

Однако, если Вы введете данные и попытаетесь отправить форму, то увидите ошибку, так как никакого файла form.php, лежащего в каталоге scripts не существует.

Создать файл-обработчик – это наша следующая задача.

2. Давайте внутри папки db1 создадим папку с названием «scripts» . В ней мы будем сохранять все наши скрипты взаимодействия с базой данных MySql.

После того как папка будет создана, создайте новый php файл и сохраните его в папке scripts под именем form.php .

Но перед тем как заняться непосредственно файлом-обработчиком информации нужно сначала подключиться к нашей базе данных. Я предлагаю создать для этого отдельный файл и вот почему:

Скорее всего в Вашем проекте Вам придется соединяться с базой данных MySql не только из одного файла. Как правило с базой данных взаимодействуют различные файлы проекта.
Очень непрактично в каждом таком файле прописывать один и тот же код подключения к базе. А если таких файлов, например, будет 50 и в один прекрасный день вы смените пароль для пользователя и Вам придётся искать все эти 50 файлов и в каждом делать исправление.
Гораздо удобнее использовать для подключения отдельный файл, который будет подключен к каждому из файлов, где должно быть соединение с базой данных MySql. В таком случае вносить исправления нужно будет только в один файл.

Итак, давайте создадим новый php файл, назовем его connect.php и поместим в папку для скриптов. В нем пропишем код соединения с нашей базой данных MySql, а также код, который будет сообщать об ошибках в случае их возникновения. Обратите внимание, что в качестве параметров Вам необходимо будет прописать Ваше имя пользователя, Ваш пароль и Ваше имя базы данных. В качестве хоста должен быть localhost.

Ошибка подключения к базе данных! " . mysql_error() . "

"); mysql_select_db("new_db")//параметр в скобках ("имя базы, с которой соединяемся") or die("

Ошибка выбора базы данных! ". mysql_error() . "

"); ?>

Теперь перейдем в файл form.php и подключим в него файл connect.php с помощью следующего кода:

Если сейчас Вы попробуете отправить форму, то увидите после отправки пустую веб страницу. Это нормально, так как мы просто соединились с базой и пока больше ничего не выводим.

Если Вы увидели сообщение об ошибке, то проверьте правильность всех параметров (имя пользователя, пароль, имя хоста: localhos, имя базы данных), а также будьте уверены, что Ваш Денвер включен.

3. Мы удачно соединились с базой данных MySql, а теперь нам нужно принять введенные в форму данные в наш файл обработчик . В этом нам помогут атрибуты “name”, которые присутствуют в html документе.

Для получения данных мы воспользуемся специальной переменной php, снабжающей нас всей информацией из веб-формы. Эта переменная называется “$_REQUEST”.

Пропишите в файле form.php после подключения файла connect.php следующий код:

$first_name = $_REQUEST["first_name"]; $last_name = $_REQUEST["last_name"]; $email = $_REQUEST["email"]; $facebook = $_REQUEST["facebook"];

4. Данные в файл мы получили и занесли их в переменные. Теперь нужно отправить эти данные в нашу таблицу базы данных MySql . Для этого ниже нужно прописать следующий код:

$insert_sql = "INSERT INTO users (first_name, last_name, email, facebook)" . "VALUES("{$first_name}", "{$last_name}", "{$email}", "{$facebook}");"; mysql_query($insert_sql);

Здесь сначала мы формируем запрос, говоря, что нам нужно вставить соответствующие переменные в соответствующие поля таблицы “users”. Заносим этот запрос в переменную “$insert_sql”. А потом с помощью специальной функции mysql_query исполняем данный запрос.

Если сейчас Вы заполните и отправите форму, а потом посмотрите в таблицу “users” Вашей базы данных, то увидите новую запись, которая там появилась после отправки.

5. Мы вставили новую запись из веб страницы в таблицу базы данных MySql. Теперь хочется немного коснуться того формата, в котором вставляются наши данные.

Во-первых, нужно позаботиться о той ситуации, когда человек, заполняя форму может поставить ненужные пробелы в начале ввода информации. Их нужно обрезать.

Во-вторых, у нас существует поле для Facebook. Если мы в последующем захотим выводить эту информацию как ссылку, то необходимо позаботиться, чтобы данные в этом поле хранились в правильном формате (то есть «http://www.facebook.com/идентификатор на facebook»). Но пользователь не всегда будет вводить эти данные так как нам нужно. Он может ввести: “www.facebook.com/идентификатор на facebook”, “facebook.com/идентификатор на facebook” или просто “/идентификатор на facebook”.

Этих ситуаций нужно избегать. Для этого давайте подкорректируем наш код. Возможные лишние пробелы мы обрежем при помощи функции trim , а проверять правильность введенного url для facebook будет функция preg_match . Таким образом весь код файла form.php будет выглядеть следующим образом:

Untitled Document Новая запись вставлена в базу!

"; ?>

О функции preg_match :
Это функция для поиска с регулярными выражениями.

Первый параметр в скобках – это регулярное выражение, второй – строка, где нужно искать.

Функция возвращает только первое совпадение: 0 – если совпадений нет, 1 – если совпадение есть.

Попробуйте теперь намеренно заполнить форму, сделав ненужные пробелы в начале заполнения какого-нибудь из полей и введя адрес для facebook без http:// или вообще введя только идентификатор facebook. Отправьте запрос, а потом перейдите в базу данных и Вы увидите, что несмотря на не совсем корректное заполнение, данные имеют именно тот вид, который нам нужен.

На этом буду заканчивать данный урок. Все файлы этого урока Вы можете скачать в исходниках (только не забудьте исправлять параметры на свои в файле connect.php).

А в следующем уроке мы научимся извлекать информацию из базы данных MySql, выбирать нужные записи и выводить их на экран. Чтобы не пропустить следующий урок подписывайтесь на обновления блога с помощью формы подписки, которую Вы видите ниже.

Оставляйте свои комментарии и делитесь с друзьями с помощью кнопок социальных сетей.

Успехов и до встречи в следующем уроке!

Последнее обновление: 1.11.2015

Для добавления данных используется выражение "INSERT":

$query ="INSERT INTO tovars VALUES(NULL, "Samsung Galaxy III","Samsumg")";

Выражение "INSERT" вставляет в таблицу одну строку. После ключевого слова INTO указывается название таблицы, а после VALUES в скобках указываются набор значений для всех столбцов. Так как у нас в таблице три столбца, то мы указываем три значения.

Так как в прошлой теме при создании таблицы мы указывали следующую очередность столбцов: id, name, company, то в данном случае для столбца id передается значение NULL, для name - "Samsung Galaxy III", а для company - "Samsumg".

Поскольку столбец id определен как AUTO_INCREMENT, то нам необязательно указывать для него определенное числовое значение, и можно передать значение NULL, а MySQL присвоит столбцу следующее доступное значение.

Теперь рассмотрим добавление данных на примере. Создадим файл create.php со следующим содержимым:

Данные добавлены"; } // закрываем подключение mysqli_close($link); } ?>

Добавить новую модель

Введите модель:

Производитель:

Здесь код взаимодействия с базой данных объединен с функциональностью форм: c помощью формы мы вводим данные для добавления в бд.

Безопасность и MySQL

Здесь мы использовали функцию mysqli_real_escape_string() . Она служит для экранизации символов в строке, которая потом используется в запросе SQL. В качестве параметров она принимает объект подключения и строку, которую надо экранировать.

Таким образом, мы применяем экранизацию символов фактически два раза: сначала для sql-выражения с помощью функции mysqli_real_escape_string() , а затем для html с помощью функции htmlentities() . Это позволит нам защититься сразу от двух видов атак: XSS-атак и SQL-инъекций.


Top