Skip to content

Latest commit

 

History

History
117 lines (85 loc) · 3.78 KB

File metadata and controls

117 lines (85 loc) · 3.78 KB

Вставка данных

Вставка данных в MySQL с помощью MySQLi и PDO

После создания базы данных и таблицы мы можем начать добавлять в них данные. При этом необходимо соблюдать некоторые правила синтаксиса:

  • SQL-запрос должен быть заключен в кавычки в PHP
  • Строковые значения внутри SQL-запроса должны быть заключены в кавычки
  • Числовые значения не должны заключаться в кавычки
  • Слово NULL не должно быть заключено в кавычки

Оператор INSERT INTO используется для добавления новых записей в таблицу MySQL:

INSERT INTO имя_таблицы
    (column1, column2, column3, ...)
VALUES
    (value1, value2, value3, ...)

В предыдущей главе мы создали пустую таблицу с именем «MyGuests» с пятью столбцами: 'id', 'firstname', 'lastname', 'email' и 'reg_date'. Теперь давайте заполним таблицу данными.

Примечание: если столбец является AUTO_INCREMENT (как столбец «id») или TIMESTAMP с обновлением по умолчанию current_timesamp (как столбец «reg_date»), его не нужно указывать в SQL-запросе; MySQL автоматически добавит значение.

Следующие примеры добавляют новую запись в таблицу «MyGuests»:

<?php

$servername = 'localhost';
$username = 'username';
$password = 'password';
$dbname = 'myDB';

// Создание подключения
$conn = new mysqli($servername, $username, $password, $dbname);

// Проверка подключения
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) {
  print('New record created successfully');
} else {
  print("Error: {$sql}<br>{$conn -> error}");
}

$conn -> close();

Пример в процедурном стиле MySQLi

<?php

$servername = 'localhost';
$username = 'username';
$password = 'password';
$dbname = 'myDB';

// Создание подключения
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Проверка подключения
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)) {
  print('New record created successfully');
} else {
  print("Error: {$sql}<br>" . mysqli_error($conn));
}

mysqli_close($conn);

Пример с использованием PDO

<?php

$servername = 'localhost';
$username = 'username';
$password = 'password';
$dbname = 'myDB';

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 ("John", "Doe", "john@example.com");';

  // использование exec(), потому что результаты не возвращаются
  $conn -> exec($sql);

  print('New record created successfully');
} catch(PDOException $e) {
  print("{$sql}<br>{$e -> getMessage()}");
}

$conn = null;