Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как изменить запись в базе данных

Короткий ответ

Выполните UPDATE подготовленным запросом:

<?php
 
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE products (id INTEGER PRIMARY KEY, title TEXT, price INTEGER)');
$pdo->exec("INSERT INTO products (title, price) VALUES ('Tea', 250), ('Coffee', 400), ('Juice', 180), ('Green tea', 300)");
 
$statement = $pdo->prepare('UPDATE products SET price = ? WHERE id = ?');
$statement->execute([270, 1]);
 
echo $pdo->query('SELECT price FROM products WHERE id = 1')->fetchColumn();

Результат:

270

Сколько строк изменилось

rowCount() возвращает число затронутых строк. Ноль означает, что записи с таким условием нет:

<?php
 
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE products (id INTEGER PRIMARY KEY, title TEXT, price INTEGER)');
$pdo->exec("INSERT INTO products (title, price) VALUES ('Tea', 250), ('Coffee', 400), ('Juice', 180), ('Green tea', 300)");
 
$statement = $pdo->prepare('UPDATE products SET price = price + 10 WHERE price < ?');
$statement->execute([300]);
 
echo $statement->rowCount();

Результат:

2

Не забудьте WHERE

Запрос UPDATE products SET price = 0 без условия изменит все строки таблицы.

Функции из этого ответа

  • PDO — Подключение к базе данных.
  • PDOStatement — Подготовленный запрос и его результат.
  • intval — Преобразует значение в целое число.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.