- Insert into mysql примеры php
- Объектно-ориентированный подход
- Процедурный подход
- Добавление данных из формы HTML
- Добавление пользователя
- Объектно-ориентированный подход
- Процедурный подход
- PHP5 MySQL Вставить данные
- Пример MySQLi - объектно-ориентированный
- Пример MySQLi - процессуальный
- Пример PDO
- PHP MySQL Insert Data
- Example (MySQLi Object-oriented)
- Example (MySQLi Procedural)
- Example (PDO)
Insert into mysql примеры 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 .
Объектно-ориентированный подход
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 , который сохранит их в базу данных.
Процедурный подход
$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. В качестве параметров она принимает объект подключения и строку, которую надо экранировать.
PHP5 MySQL Вставить данные
После создания базы данных и таблицы мы можем начать добавлять данные.
Ниже приведены некоторые синтаксические правила:
- SQL запрос должен быть заключен в кавычки
- Строковых значений в SQL запросе должны быть заключены в кавычки
- Цифровые значения не должны заключатся в кавычки
- Слово NULL не должено заключатся в кавычки
Заявление INSERT INTO используется, чтобы добавить новые записи к таблице MySQL:
Чтобы узнать больше о SQL, пожалуйста, посетите наш Учебник SQL.
В предыдущей главе, мы создали пустую таблицу с именем "MyGuests" , с пятью столбиками: "id" , "firstname" , "lastname" , "email" и "reg_date" . Теперь давайте заполним таблицу данными.
Примечание: AUTO_INCREMENT ( "id" столбец) или TIMESTAMP ( "reg_date" столбец), не нужно указывать в SQL запросе; MySQL автоматически добавит заявление.
Следующие примеры добавляют новую запись в таблицу "MyGuests" :
Пример MySQLi - объектно-ориентированный
// Подключение к MySQL
$servername = "localhost"; // локалхост
$username = "root"; // имя пользователя
$password = ""; // пароль если существует
$dbname = "myDB"; // база данных
?php
// Создание соединения
$conn = new mysqli($servername, $username, $password, $dbname);
// Проверка соединения
if ($conn->connect_error) die("Ошибка подключения: " . $conn->connect_error);
>
// Установка данных в таблицу
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Андрей', 'Щипунов', 'and-shhipunov@mail.ru')";
if ($conn->query($sql) === TRUE) echo "Успешно создана новая запись";
> else echo "Ошибка: " . $sql . "
" . $conn->error;
>
// Закрыть подключение
$conn->close();
?>
Пример MySQLi - процессуальный
// Подключение к MySQL
$servername = "localhost"; // локалхост
$username = "root"; // имя пользователя
$password = ""; // пароль если существует
$dbname = "myDB"; // база данных
?php
// Создание соединения
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Проверка соединения
if (!$conn) die("Подключение не удалось: " . mysqli_connect_error());
>
// Установка данных в таблицу
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Андрей', 'Щипунов', 'and-shhipunov@mail.ru')";
if (mysqli_query($conn, $sql)) echo "Успешно создана новая запись";
> else echo "Ошибка: " . $sql . "
" . mysqli_error($conn);
>
// Закрыть подключение
mysqli_close($conn);
?>
Пример PDO
// Подключение к MySQL
$servername = "localhost"; // локалхост
$username = "root"; // имя пользователя
$password = ""; // пароль если существует
$dbname = "myDBPDO"; // база данных
?php
// Создание соединения и исключения
try $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// Установить режим ошибки PDO в исключение
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Установка данных в таблицу
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Андрей', 'Щипунов', 'and-shhipunov@mail.ru')";
// Используйте exec (), поскольку результаты не возвращаются
$conn->exec($sql);
echo "Успешно создана новая запись";
>
catch(PDOException $e)
echo $sql . "
" . $e->getMessage();
>
// Закрыть подключение
$conn = null;
?>
PHP MySQL Insert Data
After a database and a table have been created, we can start adding data in them.
Here are some syntax rules to follow:
- The SQL query must be quoted in PHP
- String values inside the SQL query must be quoted
- Numeric values must not be quoted
- The word NULL must not be quoted
The INSERT INTO statement is used to add new records to a MySQL table:
To learn more about SQL, please visit our SQL tutorial.
In the previous chapter we created an empty table named "MyGuests" with five columns: "id", "firstname", "lastname", "email" and "reg_date". Now, let us fill the table with data.
Note: If a column is AUTO_INCREMENT (like the "id" column) or TIMESTAMP with default update of current_timesamp (like the "reg_date" column), it is no need to be specified in the SQL query; MySQL will automatically add the value.
The following examples add a new record to the "MyGuests" table:
Example (MySQLi Object-oriented)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
?php
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) die("Connection failed: " . $conn->connect_error);
>
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
if ($conn->query($sql) === TRUE) echo "New record created successfully";
> else echo "Error: " . $sql . "
" . $conn->error;
>
Example (MySQLi Procedural)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
?php
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) die("Connection failed: " . mysqli_connect_error());
>
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
if (mysqli_query($conn, $sql)) echo "New record created successfully";
> else echo "Error: " . $sql . "
" . mysqli_error($conn);
>
Example (PDO)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
?php
try $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
// use exec() because no results are returned
$conn->exec($sql);
echo "New record created successfully";
> catch(PDOException $e) echo $sql . "
" . $e->getMessage();
>