METANIT.COM

Posting to database php

В прошлой теме мы добавили в базу данных таблицу Users с тремя столбцами id, name, age со следующим определением:

CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER)

Теперь добавим в нее данные. Для добавления данных в MySQL применяется команда INSERT :

INSERT INTO название_таблицы (столбец1, столбец2, столбецN) VALUES ( значение1, значение2, значениеN)

Объектно-ориентированный подход

connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "INSERT INTO Users (name, age) VALUES ('Tom', 37)"; if($conn->query($sql)) < echo "Данные успешно добавлены"; >else< echo "Ошибка: " . $conn->error; > $conn->close(); ?>
connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "INSERT INTO Users (name, age) VALUES ('Sam', 41), ('Bob', 29), ('Alice', 32)"; if($conn->query($sql)) < echo "Данные успешно добавлены"; >else< echo "Ошибка: " . $conn->error; > $conn->close(); ?>

Процедурный подход

 $sql = "INSERT INTO Users (name, age) VALUES ('Tom', 37)"; if(mysqli_query($conn, $sql)) < echo "Данные успешно добавлены"; >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?>
 $sql = "INSERT INTO Users (name, age) VALUES ('Sam', 41), ('Bob', 29), ('Alice', 32)"; if(mysqli_query($conn, $sql)) < echo "Данные успешно добавлены"; >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?>

Добавление данных из формы HTML

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

     

Добавление пользователя

Имя:

Возраст:

Здесь определены два поля ввода. И по нажатию на кнопку их данные в запросе POST будут уходить скрипту create.php . Теперь определим сам скрипт create.php .

Читайте также:  Java path class import

Объектно-ориентированный подход

connect_error)< die("Ошибка: " . $conn->connect_error); > $name = $conn->real_escape_string($_POST["username"]); $age = $conn->real_escape_string($_POST["userage"]); $sql = "INSERT INTO Users (name, age) VALUES ('$name', $age)"; if($conn->query($sql)) < echo "Данные успешно добавлены"; >else< echo "Ошибка: " . $conn->error; > $conn->close(); > ?>

Здесь мы проверяем, пришли ли с сервера данные в POST-запросе, которые имеют ключи «username» и «userage»:

if (isset($_POST["username"]) && isset($_POST["userage"])) 

Если эти данные имеются, то есть был отправлен post-запрос с данными на добавление, то мы получаем эти данные в переменные и добавляем их в бд. Но перед добавлением к этим данным применяется метод $conn->real_escape_string() , которая принимает сохраняемое значение и экранирует в нем спецсимволы, что позволяет защитить от SQL-инъекций.

В итоге после ввода данных и нажатия на кнопку данные в запросе POST уйдут скрипту create.php , который сохранит их в базу данных.

Добавление данных в MySQL в PHP

Процедурный подход

 $name = mysqli_real_escape_string($conn, $_POST["username"]); $age = mysqli_real_escape_string($conn, $_POST["userage"]); $sql = "INSERT INTO Users (name, age) VALUES ('$name', $age)"; if(mysqli_query($conn, $sql)) < echo "Данные успешно добавлены"; >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); > ?>

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

Источник

Вставка данных в базу данных MySQL

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

Вставка данных в таблицу базы данных MySQL

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

  • Если значение, которое нужно вставить, является строкой, мы должны заключить ее в кавычки.
  • Числовое значение нельзя заключать в кавычки.
  • NULL нельзя заключать в кавычки.
  • Если столбец в таблице имеет параметр AUTO_INCREMENT , то нам не нужно вставлять данные в этот столбец, т.к. данные будут вставляются автоматически.

Для вставки новых строк в таблицу базы данных используется оператор INSERT INTO .

Давайте сделаем SQL-запрос, используя оператор INSERT INTO с соответствующими значениями, после чего мы передадим его функции PHP mysqli_query() для вставки данных в таблицу.

Следующий пример вставляет новую строку в таблицу persons, указывая значения для полей first_name, last_name и email в трех различных версиях: с использованием синтаксиса объектно-ориентированной процедуры MySQLi, процедурный MySQLi и процедуры PDO.

Пример

 // Попытка выполнения запроса вставки $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', 'peterparker@mail.com')"; if(mysqli_query($link, $sql)) < echo "Записи успешно вставлены."; >else < echo "ERROR: Не удалось выполнить $sql. " . mysqli_error($link); >// Закрыть соединение mysqli_close($link); ?>
connect_error); > // Попытка выполнения запроса вставки $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', 'peterparker@mail.com')"; if($mysqli->query($sql) === true) < echo "Записи успешно вставлены."; >else< echo "ERROR: Не удалось выполнить $sql. " . $mysqli->error; > // Закрыть соединение $mysqli->close(); ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); > catch(PDOException $e)< die("ОШИБКА: не удалось подключиться. " . $e->getMessage()); > // Попытка выполнения запроса вставки try< $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', 'peterparker@mail.com')"; $pdo->exec($sql); echo "Записи успешно вставлены."; > catch(PDOException $e)< die("ERROR: Не удалось выполнить $sql. " . $e->getMessage()); > // Закрыть соединение unset($pdo); ?>

Примечание: Если столбец — это AUTO_INCREMENT (например, столбец «id»), то его не нужно указывать в запросе SQL. Этот модификатор сообщает MySQL автоматически присвоить значение этому полю.

Вставка нескольких строк в таблицу

Вы также можете вставить сразу несколько строк в таблицу с помощью одного запроса на вставку. Для этого включите в оператор INSERT INTO несколько списков значений столбцов, где значения столбцов для каждой строки должны быть заключены в круглые скобки и разделены запятыми.

В следующем примере вставим еще несколько строк в таблицу persons:

Пример

 // Попытка выполнения запроса вставки $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', 'johnrambo@mail.com'), ('Clark', 'Kent', 'clarkkent@mail.com'), ('John', 'Carter', 'johncarter@mail.com'), ('Harry', 'Potter', 'harrypotter@mail.com')"; if(mysqli_query($link, $sql)) < echo "Записи успешно вставлены."; >else < echo "ERROR: Не удалось выполнить $sql. " . mysqli_error($link); >// Закрыть соединение mysqli_close($link); ?>
connect_error); > // Попытка выполнения запроса вставки $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', 'johnrambo@mail.com'), ('Clark', 'Kent', 'clarkkent@mail.com'), ('John', 'Carter', 'johncarter@mail.com'), ('Harry', 'Potter', 'harrypotter@mail.com')"; if($mysqli->query($sql) === true) < echo "Записи успешно вставлены."; >else< echo "ERROR: Не удалось выполнить $sql. " . $mysqli->error; > // Закрыть соединение $mysqli->close(); ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); > catch(PDOException $e)< die("ERROR: Ошибка подключения. " . $e->getMessage()); > // Попытка выполнения запроса вставки try< $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', 'johnrambo@mail.com'), ('Clark', 'Kent', 'clarkkent@mail.com'), ('John', 'Carter', 'johncarter@mail.com'), ('Harry', 'Potter', 'harrypotter@mail.com')"; $pdo->exec($sql); echo "Записи успешно вставлены."; > catch(PDOException $e)< die("ERROR: Не удалось выполнить $sql. " . $e->getMessage()); > // Закрыть соединение unset($pdo); ?>

Теперь перейдите в phpMyAdmin и проверьте данные таблицы persons внутри базы данных. Вы обнаружите, что значение столбца id присваивается автоматически путем увеличения значения предыдущего идентификатора на 1.

Вставка данных в таблицу БД

В MySQL каждая запись представляет собой полный запрос INSERT INTO , разделенный точкой с запятой.

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

Пример

 $sql = "INSERT INTO Users (name, email) VALUES ('James Bond', 'bond@mail.com');"; $sql .= "INSERT INTO Users (name, email) VALUES ('John Wick', 'wick@mail.com');"; $sql .= "INSERT INTO Users (name, email) VALUES ('Ethan Hunt', 'hunt@mail.com')"; 

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

Вставка данных в БД из HTML-формы

В предыдущем разделе мы узнали, как вставлять данные в базу данных из сценария PHP. Теперь посмотрим, как мы можем вставить данные в базу данных, полученную из HTML-формы. Давайте создадим HTML-форму, которую можно использовать для вставки новых записей в таблицу persons.

Создадим простую HTML-форма с тремя текстовыми полями и кнопкой отправки:

Пример

        

Получение и вставка данных формы

Когда пользователь нажимает кнопку отправки HTML-формы, в приведенном выше примере данные формы отправляются в файл-обработчик PHP 'insert.php'. Файл 'insert.php' подключается к серверу базы данных MySQL, извлекает поля форм с использованием переменной PHP $_REQUEST и, наконец, выполняет запрос на вставку записей в БД.

Ниже приведен полный код нашего файла insert.php:

Пример

 // экранирует специальные символы в строке $first_name = mysqli_real_escape_string($link, $_REQUEST['first_name']); $last_name = mysqli_real_escape_string($link, $_REQUEST['last_name']); $email = mysqli_real_escape_string($link, $_REQUEST['email']); // Попытка выполнения запроса вставки $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; if(mysqli_query($link, $sql)) < echo "Записи успешно добавлены."; >else < echo "ERROR: Не удалось выполнить $sql. " . mysqli_error($link); >// Закрыть соединение mysqli_close($link); ?>
connect_error); > $first_name = $mysqli->real_escape_string($_REQUEST['first_name']); $last_name = $mysqli->real_escape_string($_REQUEST['last_name']); $email = $mysqli->real_escape_string($_REQUEST['email']); // Попытка выполнения запроса вставки $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; if($mysqli->query($sql) === true) < echo "Записи успешно вставлены."; >else< echo "ERROR: Не удалось выполнить $sql. " . $mysqli->error; > // Закрыть соединение $mysqli->close(); ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); > catch(PDOException $e)< die("Ошибка подключения. " . $e->getMessage()); > // Попытка выполнения запроса вставки try< // Создать подготовленную выписку $sql = "INSERT INTO persons (first_name, last_name, email) VALUES (:first_name, :last_name, :email)"; $stmt = $pdo->prepare($sql); // Привязать параметры к оператору $stmt->bindParam(':first_name', $_REQUEST['first_name']); $stmt->bindParam(':last_name', $_REQUEST['last_name']); $stmt->bindParam(':email', $_REQUEST['email']); // Выполнить подготовленный оператор $stmt->execute(); echo "Записи успешно вставлены."; > catch(PDOException $e)< die("Ошибка вставки $sql. " . $e->getMessage()); > // Закрыть соединение unset($pdo); ?>

Примечание: Функция mysqli_real_escape_string() экранирует специальные символы в строке и создает допустимую строку SQL для защиты от атаки, при которой злоумышленник может внедрить или выполнить вредоносный код SQL.

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

Источник

PHP Code Insert/Store Data Into MySQL Database From Form

PHP code for inserting data into database from form using mysql. Through this tutorial, you will learn how to store or insert/save/store form data into MySQL database table using PHP.

This tutorial shows you an easy way to insert/save/store your html form data into a MySQL database table using a simple PHP Code.

How to Insert HTML Form Data in Database from From in PHP MySQL

  • 1. Create a Database Connection File
  • 2. Create Html form
  • 3. Create Insert.php file to Store Data Into Database using PHP Script

1. Create a Database Connection File

In this step, you will create a file name db.php and update the below code into your file.

The below code is used to create a MySQL database connection in PHP. When we insert form data into MySQL database, there we will include this file:

2. Create Html form

In this step, you need to create an HTML form that name is contact.php file and add the below code into your contact.php file.

We will create three fields the first name is a name, the second is email and the third field name is mobile. In these three fields in HTML form, we will insert our database table name users.

      .wrapper 
Contact Form

Please fill this form and submit to add employee record to the database.

Name
Email
Mobile

3. Create Insert.php file to Store Data Into Database using PHP Script

In this step, you need to create one file name insert.php and update the below code into your file.

The below code inserts your form data into the MySQL database table using a PHP script.

Conclusion

In this tutorial, you have learned how to store form data into a MySQL database table using PHP code.

This is a very basic and easy example of inserting the form data into a MySQL database table using a PHP script. In the next tutorial, we will show you how you can retrieve and display data from the database in PHP using MySQL.

Источник

Оцените статью