PHP MySQL вставка данных при помощи insert - httpdoc.ru

PHP MySQL INSERT запрос

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

В предыдущем уроке мы изучили создание таблиц в базе данных. Теперь, когда вы поняли, как создавать таблицы в MySQL мы пойдем на шаг вперед и научимся вставлять любые данные в таблицу с помощью SQL-запроса «insert».

Формируем запрос с помощью "INSERT INTO" заявления. Этот оператор используется для запуска запроса «Вставить», который вставляет новые записи в виде строк в таблицу. Оператор INSERT INTO, за которым следуют значения столбцов в таблице, формирует запрос Insert.

Давайте посмотрим на некоторые правила синтаксиса, которым нужно следовать, чтобы создать безошибочный запрос. Если эти правила нарушены, то запрос не будет выполнен и в таблицу не будет вставлена ​​запись:

Правила :

  • Все запросы SQL должны быть написаны в кавычках («»).
  • Слово NULL нельзя цитировать.
  • Строковые значения внутри SQL-запроса также должны быть заключены в кавычки.
  • Никогда не цитируйте числовые значения.

Теперь посмотрим на синтаксис всего запроса:

Вы можете следовать двум типам синтаксиса:

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

ВСТАВИТЬ INTO имя_таблицы
ЗНАЧЕНИЯ (значение1; значение2; значение3; ...)

В этом типе синтаксиса вы должны вводить значения точно в последовательности столбцов. Этот синтаксис вставляет значения точно так же, как вы их вставляете. Например, если первый столбец - это идентификатор, то все, что вы введете вместо значения 1, будет вставлено в идентификатор, значение 2 будет вставлено во второй столбец и так далее. Будьте осторожны при таком подходе, потому что, если последовательность будет изменена, вы получите неправильные данные в столбцах или вообще не получите данных.

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

ВСТАВИТЬ INTO имя_таблицы (столбец1, столбец2, столбец3, ...)
ЗНАЧЕНИЯ (значение1; значение2; значение3; ...)

Теперь нам нужно выполнить этот запрос, поэтому мы будем использовать mysqli_query() функцию. Узнать больше о функция mysqli_query () .

Теперь мы увидим различные примеры вставки данных в таблицы для различных типов расширений в MySQL. Узнать больше о различных типах Расширения MySQL .

Вставить запись с использованием процедурного метода MySQLi

В этом примере соблюдается процедурный метод. Вы можете видеть , что здесь мы вставляя данные в таблицу с именем persons , с колоннами 'ID' , 'first_name' , 'last_name' , 'email' с их заданными значениями. Если столбец ID находится ниже AUTO_INCREMENT , то даже если вы не дадите ему никакого значения, он будет принимать увеличенное значение от предыдущего значения столбца.

Пример
<?php
/* MySQL server connection. */
$link = mysqli_connect("localhost", "root", "", "demo");
 
/* Check connection */
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
/* Attempt insert query execution */
$sql = "INSERT INTO persons (id, first_name, last_name, email) VALUES (1, 'Peter', 'Parker', 'peterparker@mail.com')";
if(mysqli_query($link, $sql)){
    echo "Records inserted successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
 
/* Close connection */
mysqli_close($link);
?>

Выход

Записи успешно вставлены.

Вставить запись с использованием объектно-ориентированного метода MySQLi

В этом примере основное внимание уделяется выполнению запроса Insert с использованием объектно-ориентированного подхода расширения MySQLi.

Пример
<?php
/* Attempt MySQL server connection. */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
/* Check connection */
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);
}
 
/* Attempt insert query execution */
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', 'peterparker@mail.com')";
if($mysqli->query($sql) === true){
    echo "Records inserted successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . $mysqli->error;
}
 
/* Close connection */
$mysqli->close();
?>

Выход

Записи успешно вставлены.

PHP MySQLi Вставить запись с использованием метода PDO

Метод PDO описан в примере ниже. Чтобы узнать больше о методе PDO, вы можете перейти на База данных MySQL , где мы обсудили различные расширения MySQLi.

Пример
<?php
/* Attempt MySQL server connection. */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    /* Set the PDO error mode to exception */
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Could not connect. " . $e->getMessage());
}
 
/* Attempt insert query execution */
try{
    $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', 'peterparker@mail.com')";    
    $pdo->exec($sql);
    echo "Records inserted successfully.";
} catch(PDOException $e){
    die("ERROR: Could not able to execute $sql. " . $e->getMessage());
}
 
/* Close connection */
unset($pdo);
?>

Выход

Записи успешно вставлены.

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

Если вы хотите вставить несколько запросов, вы можете легко добавить в запрос новый набор значений, разделенных запятой (,) . Посмотрите на пример ниже, чтобы увидеть синтаксис одновременной вставки нескольких значений с использованием разных подходов.

Вставить несколько записей с помощью процедурного метода

Пример
<?php
/* Attempt MySQL server connection. */
$link = mysqli_connect("localhost", "root", "", "demo");
 
/* Check connection */
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
/* Attempt insert query execution */
$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 "Records added successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
 
/* Close connection */
mysqli_close($link);
?>

Выход

Записи успешно вставлены.

Вставить несколько записей с помощью объектно-ориентированного метода

Пример
<?php
/* Attempt MySQL server connection. */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
/* Check connection */
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);
}
 
/* Attempt insert query execution */
$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 "Records inserted successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . $mysqli->error;
}
 
/* Close connection */
$mysqli->close();
?>

Выход

Записи успешно вставлены.

Вставить несколько записей с помощью метода PDO

Пример
<?php
/* Attempt MySQL server connection. */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Could not connect. " . $e->getMessage());
}
 
/* Attempt insert query execution */
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 "Records inserted successfully.";
} catch(PDOException $e){
    die("ERROR: Could not able to execute $sql. " . $e->getMessage());
}
 
/* Close connection */
unset($pdo);
?>

Выход

Записи успешно вставлены.