- PHP5 MySQL Обновить данные
- MySQL Обновление данных в таблице, используя mysqli и PDO
- Пример MySQLi — объектно-ориентированный
- Пример MySQLi — процессуальный
- Пример PDO
- Mysql запросы php update
- Объектно-ориентированный стиль
- Список пользователей
- Обновление пользователя
- Процедурный стиль
- Список пользователей
- Обновление пользователя
- Обновление данных в базе данных MySQL
- Обновление данных БД
- Пример
- PHP MySQL Update Data
- Example (MySQLi Object-oriented)
- Example (MySQLi Procedural)
- Example (PDO)
PHP5 MySQL Обновить данные
MySQL Обновление данных в таблице, используя mysqli и PDO
Заявление UPDATE используется для обновления существующих записей в таблице:
Обратите внимание на предложение WHERE в синтаксисе удаления: Предложение WHERE указывает, какие записи или запись должны быть удалены. Если исключить условие WHERE, то все записи будут удалены!
Чтобы узнать больше о SQL, пожалуйста, посетите наш Учебник SQL.
Давайте посмотрим на таблицу «MyGuests» :
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | Федор | Петров | fed@example.ru | 2017-10-22 14:26:15 |
2 | Петр | Громыхалов | petr@example.ru | 2017-10-23 10:22:30 |
В следующих примерах обновить запись с id=2 в таблице «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 = «UPDATE MyGuests SET lastname=’Петров’ WHERE ($conn->query($sql) === TRUE) echo «Запись успешно обновлена»;
> else echo «Ошибка обновления записи: » . $conn->error;
>
// Закрыть подключение
$conn->close();
?>
Пример MySQLi — процессуальный
// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDB»; // база данных
?php
// Создание соединения
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Проверка соединения
if (!$conn) die(«Connection failed: » . mysqli_connect_error());
>
// Обновление
$sql = «UPDATE MyGuests SET lastname=’Петров’ WHERE (mysqli_query($conn, $sql)) echo «Запись успешно обновлена»;
> else echo «Ошибка обновления записи: » . 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 = «UPDATE MyGuests SET lastname=’Петров’ WHERE // Подготовленное заявление
$stmt = $conn->prepare($sql);
// Выполнение запроса
$stmt->execute();
// Выводим, запись обновления UPDATED
echo $stmt->rowCount() . » записи обновлены успешно»;
>
catch(PDOException $e)
echo $sql . «
» . $e->getMessage();
>
// Закрыть подключение
$conn = null;
?>
После обновления записи, Таблица будет выглядеть следующим образом:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | Федор | Петров | fed@example.ru | 2017-10-22 14:26:15 |
2 | Петр | Петров | petr@example.ru | 2017-10-23 10:22:30 |
Mysql запросы php update
В MySQL для обновления применяется sql-команда UPDATE :
UPDATE Таблица SET столбец1 = значение1, столбец2 = значение2. WHERE столбец = значение
Для примера возьмем использованную в прошлых темах таблицу Users со следующим определением:
CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER)
Объектно-ориентированный стиль
Сначала определим файл index.php , который будет выводить список пользователей с ссылками на их обновление:
Список пользователей
connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "SELECT * FROM Users"; if($result = $conn->query($sql))< echo "
Имя | Возраст | |
---|---|---|
" . $row["name"] . " | "; echo "" . $row["age"] . " | "; echo "Изменить | "; echo "
Здесь используется команда SELECT, которая получает всех пользователей из таблицы Users. В таблице третий столбец хранит ссылку на скрипт update.php, который мы далее создадим и которому передается параметр id с идентификатором пользователя, которого надо изменить.
Для обновления данных определим скрипт update.php :
connect_error)< die("Ошибка: " . $conn->connect_error); > ?> real_escape_string($_GET["id"]); $sql = "SELECT * FROM Users WHERE "; if($result = $conn->query($sql))< if($result->num_rows > 0) < foreach($result as $row)< $username = $row["name"]; $userage = $row["age"]; >echo "Обновление пользователя
Имя:
Возраст:
"; > else< echo "Пользователь не найден"; > $result->free(); > else< echo "Ошибка: " . $conn->error; > > elseif (isset($_POST["id"]) && isset($_POST["name"]) && isset($_POST["age"])) < $userid = $conn->real_escape_string($_POST["id"]); $username = $conn->real_escape_string($_POST["name"]); $userage = $conn->real_escape_string($_POST["age"]); $sql = "UPDATE Users SET name = '$username', age = '$userage' WHERE "; if($result = $conn->query($sql)) < header("Location: index.php"); >else< echo "Ошибка: " . $conn->error; > > else < echo "Некорректные данные"; >$conn->close(); ?>
Весь код обновления структурно делится на две части. В первой части мы обрабатываем запрос GET. Когда пользователь нажимает на ссылку «Обновить» на странице index.php , то отправляется запрос GET, в котором передается id редактируемого пользователя.
if($_SERVER["REQUEST_METHOD"] === "GET" && isset($_GET["id"]))
И если это запрос GET, то нам надо вывести данные редактируемого пользователя в поля формы. Для этого получаем из базы данных объект по переданному id
$userid = $conn->real_escape_string($_GET["id"]); $sql = "SELECT * FROM Users WHERE "; if($result = $conn->query($sql))Далее получаем полученные данные и, если они имеются, выводим их в поля формы. Таким образом, пользователь увидит на форме данные обновляемого объекта.
Вторая часть скрипта представляет обработку POST-запроса - когда пользователь нажимает на кнопку на форме, то будет отправляться POST-запрос с отправленными данными. Мы получаем эти данные и отправляем базе данных команду UPDATE с этими данными, используя при этом параметризацию запроса:
$userid = $conn->real_escape_string($_POST["id"]); $username = $conn->real_escape_string($_POST["name"]); $userage = $conn->real_escape_string($_POST["age"]); $sql = "UPDATE Users SET name = '$username', age = '$userage' WHERE "; if($result = $conn->query($sql))После выполнения запроса к БД перенаправляем пользователя на скрипт index.php с помощью функции
Таким образом, пользователь обращается к скрипту index.php , видит таблицу с данными и нажимает на ссылку "Обновить" в одной из строк.
После нажатия его перебрасывает на скрипт update.php , который выводит данные редактируемого объекта. Пользователь изменяет данные и нажимает на кнопку.
Данные в запросе POST отправляются этому же скрипту update.php , который сохраняет данные и перенаправляет пользователя обратно на index.php .
Процедурный стиль
Список пользователей
$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql))< echo "
Имя | Возраст | |
---|---|---|
" . $row["name"] . " | "; echo "" . $row["age"] . " | "; echo "Изменить | "; echo "
?> 0) < foreach($result as $row)< $username = $row["name"]; $userage = $row["age"]; >echo "Обновление пользователя
Имя:
Возраст:
"; > else< echo "Пользователь не найден"; > mysqli_free_result($result); > else < echo "Ошибка: " . mysqli_error($conn); >> elseif (isset($_POST["id"]) && isset($_POST["name"]) && isset($_POST["age"])) < $userid = mysqli_real_escape_string($conn, $_POST["id"]); $username = mysqli_real_escape_string($conn, $_POST["name"]); $userage = mysqli_real_escape_string($conn, $_POST["age"]); $sql = "UPDATE Users SET name = '$username', age = '$userage' WHERE "; if($result = mysqli_query($conn, $sql))< header("Location: index.php"); >else < echo "Ошибка: " . mysqli_error($conn); >> else < echo "Некорректные данные"; >mysqli_close($conn); ?>
Обновление данных в базе данных MySQL
В этом уроке вы узнаете, как обновлять записи в таблице базы данных MySQL с помощью запросов SQL.
Обновление данных БД
При обновлении данных в таблице можно либо обновить определенные строки, либо обновить все строки в таблице. Эти задачи решаются с помощью оператора SQL UPDATE в сочетании с ключевыми словами SET и WHERE .
Базовый синтаксис оператора UPDATE может быть задан следующим образом:
Давайте создадим SQL-запрос, используя оператор UPDATE и условие WHERE , передав его функции PHP mysqli_query() для обновления записей таблиц. Рассмотрим следующую таблицу persons в базе данных demo:
Код PHP в следующем примере обновит адрес электронной почты человека в таблице persons, идентификатор которого равен 1:
Пример
$sql = "UPDATE persons SET email='peterparker_new@mail.com' WHERE (mysqli_query($conn, $sql)) < echo "Запись успешно обновлена"; >else < echo "Ошибка обновления записи: " . mysqli_error($conn); >mysqli_close($conn); ?>
$sql = "UPDATE persons SET email='peterparker_new@mail.com' WHERE ($conn->query($sql) === TRUE) < echo "Запись успешно обновлена"; >else < echo "Ошибка обновления записи: " . $conn->error; > $conn->close(); ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "UPDATE persons SET email='peterparker_new@mail.com' WHERE // Подготовить заявление $stmt = $conn->prepare($sql); // выполнить запрос $stmt->execute(); // echo-сообщение, чтобы сказать, что ОБНОВЛЕНИЕ выполнено успешно echo $stmt->rowCount() . " записи ОБНОВЛЕНЫ успешно"; > catch(PDOException $e) < echo $sql . "
" . $e->getMessage(); > $conn = null; ?>
После обновления таблица лиц будет выглядеть так:
Примечание: Обратите внимание на условие WHERE в синтаксисе UPDATE: условие WHERE указывает, какую запись или записи следует обновить. Если вы опустите условие WHERE, все записи будут обновлены!
PHP MySQL Update Data
The UPDATE statement is used to update existing records in a table:
Notice the WHERE clause in the UPDATE syntax: The WHERE clause specifies which record or records that should be updated. If you omit the WHERE clause, all records will be updated!
To learn more about SQL, please visit our SQL tutorial.
Let's look at the "MyGuests" table:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | John | Doe | john@example.com | 2014-10-22 14:26:15 |
2 | Mary | Moe | mary@example.com | 2014-10-23 10:22:30 |
The following examples update the record with in 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 = "UPDATE MyGuests SET lastname='Doe' WHERE ($conn->query($sql) === TRUE) echo "Record updated successfully";
> else echo "Error updating record: " . $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 = "UPDATE MyGuests SET lastname='Doe' WHERE (mysqli_query($conn, $sql)) echo "Record updated successfully";
> else echo "Error updating record: " . 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 = "UPDATE MyGuests SET lastname='Doe' WHERE // Prepare statement
$stmt = $conn->prepare($sql);
// execute the query
$stmt->execute();
// echo a message to say the UPDATE succeeded
echo $stmt->rowCount() . " records UPDATED successfully";
> catch(PDOException $e) echo $sql . "
" . $e->getMessage();
>
After the record is updated, the table will look like this:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | John | Doe | john@example.com | 2014-10-22 14:26:15 |
2 | Mary | Doe | mary@example.com | 2014-10-23 10:22:30 |