Руководство по языку программирования PHP
 

PCRE
 

PHP и mysql

Обновление данных в mysql таблице

Обновление данных в mysql таблице осуществляется операторами update и replace. При помощи оператора update обновляются поля в уже существующих записях, а оператор replace добавляет запись, но перед добавлением проверяет наличие записи с таким же значением индекса primary key или unique в таблице. Если совпадения по индексу есть, то предыдущая запись удаляется из таблицы.

Упрощенный синтаксис операторов update и replace имеет следующий вид:

update [ignore] tbl_name set field1= expr1 [, field2 = expr2...] [where condition]

replace [into] tbl_name [(field1, field2....)] values (expr1, expr2....)

Ниже будет продемонстрирована работа этих операторов на следующей таблице.

id model year distance
1 Audi 2005 1000
2 Volvo 2005 15000
3 Fiat 2003 12300
4 Ford 2002 54000
5 Alfa Romeo 2005 20000

Пример 1:

В этом примере будет изменено поле year в строке с полем model равным Volvo


$connection = new mysqli("localhost","root","",'mybase');
$query = "update auto set year=1998 where model='Volvo'";
$result = $connection->query($query);
$query = "select * from auto";
$result = $connection->query($query);
while($row = mysqli_fetch_array($result))
{
echo "model: ".$row ['model']."
";
echo "year: ".$row ['year']."
";
}

?>

Результат:

model: Audi
year: 2005
model: Volvo
year: 1998
model: Fiat
year: 2003
model: Ford
year: 2002
model: Alfa Romeo
year: 2005

Пример 2:

Изменения можно также производить сразу над всем столбцом таблицы. Будет уменьшено значение столбца distance на 1000


$connection = new mysqli("localhost","root","",'mybase');
$query = "update auto set distance=(distance-1000)";
$result = $connection->query($query);
$query = "select * from auto order by year";
$result = $connection->query($query);
while($row = mysqli_fetch_array($result))
{
echo "model: ".$row ['model']."
";
echo "distance: ".$row ['distance']."
";
}

?>

Результат:

model: Volvo
distance: 14000
model: Ford
distance: 53000
model: Fiat
distance: 11300
model: Audi
distance: 0
model: Alfa Romeo
distance: 19000

Пример 3:

Здесь представлена работа оператора replace


$connection = new mysqli("localhost","root","",'mybase');
$query = "replace auto values (6,'Mazda', 1997, 23000)";
$result = $connection->query($query);
$query = "select * from auto";
$result = $connection->query($query);
while($row = mysqli_fetch_array($result))
{
echo "model: ".$row ['model']."
";
}

?>

Результат:

model: Audi
model: Volvo
model: Fiat
model: Ford
model: Alfa Romeo
model: Mazda

Если код из третьего примера запустить еще раз, то таблица уже не изменится, так как поле id имеет unique индекс. Здесь запись с id=6 просто перезапишет само себя.

 

- Создание базы данных
- Создание таблиц
- Индексы в mysql
- Добавление данных
- Загрузка данных из файла
- Выборка данных
- Сортировка данных в sql запросе
- Использование функций в sql запросе
- Группировка данных
- Объединение sql запросов
- Сохранение sql запроса в файл
- Удаление данных
- Обновление данных
- Добавление и удаление столбцов
- Перестановка столбцов
- Изменение типов столбцов
- Переименование названия таблицы и столбцов
- Добавление и удаление индексов