📘 Полное руководство по PHP – Глава 9: Работа с базами данных (PDO и ORM) 🐘
В этой главе мы углубимся в работу с базами данных в PHP. Вы узнаете, как использовать PDO (PHP Data Objects) для безопасного взаимодействия с базами данных, а также познакомитесь с основами ORM (Object-Relational Mapping).
---
### 1. PDO: Подключение к базе данных
PDO — это универсальный интерфейс для работы с различными СУБД (MySQL, PostgreSQL, SQLite и др.).
#### Подключение к MySQL
---
### 2. Выполнение запросов
#### SELECT
#### INSERT
#### UPDATE
#### DELETE
---
### 3. Транзакции
Транзакции позволяют выполнять несколько запросов как единое целое. Если один запрос завершится ошибкой, все изменения откатываются.
Пример:
---
### 4. ORM: Введение
ORM (Object-Relational Mapping) — это технология, которая позволяет работать с базой данных как с объектами в коде. Популярные ORM для PHP: Eloquent (Laravel), Doctrine.
#### Пример с Eloquent
1. Установите Eloquent через Composer:
2. Настройка:
3. Создание модели:
---
### 5. Миграции
Миграции позволяют управлять структурой базы данных через код.
#### Пример с Eloquent
1. Создайте миграцию:
2. Примените миграцию:
🎯 Что дальше?
В следующей главе мы изучим работу с API, включая создание и использование RESTful API.
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
В этой главе мы углубимся в работу с базами данных в PHP. Вы узнаете, как использовать PDO (PHP Data Objects) для безопасного взаимодействия с базами данных, а также познакомитесь с основами ORM (Object-Relational Mapping).
---
### 1. PDO: Подключение к базе данных
PDO — это универсальный интерфейс для работы с различными СУБД (MySQL, PostgreSQL, SQLite и др.).
#### Подключение к MySQL
<?php
$host = 'localhost';
$dbname = 'my_database';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Подключение успешно!";
} catch (PDOException $e) {
echo "Ошибка подключения: " . $e->getMessage();
}
?>
---
### 2. Выполнение запросов
#### SELECT
<?php
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "Имя: " . $row['name'] . ", Возраст: " . $row['age'] . "<br>";
}
?>
#### INSERT
<?php
$name = "Иван";
$age = 25;
$stmt = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");
$stmt->execute(['name' => $name, 'age' => $age]);
echo "Запись добавлена!";
?>
#### UPDATE
<?php
$id = 1;
$newAge = 30;
$stmt = $pdo->prepare("UPDATE users SET age = :age WHERE id = :id");
$stmt->execute(['age' => $newAge, 'id' => $id]);
echo "Запись обновлена!";
?>
#### DELETE
<?php
$id = 1;
$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");
$stmt->execute(['id' => $id]);
echo "Запись удалена!";
?>
---
### 3. Транзакции
Транзакции позволяют выполнять несколько запросов как единое целое. Если один запрос завершится ошибкой, все изменения откатываются.
Пример:
<?php
try {
$pdo->beginTransaction();
$stmt1 = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");
$stmt1->execute(['name' => 'Иван', 'age' => 25]);
$stmt2 = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");
$stmt2->execute(['name' => 'Мария', 'age' => 30]);
$pdo->commit();
echo "Транзакция успешно завершена!";
} catch (Exception $e) {
$pdo->rollBack();
echo "Ошибка: " . $e->getMessage();
}
?>
---
### 4. ORM: Введение
ORM (Object-Relational Mapping) — это технология, которая позволяет работать с базой данных как с объектами в коде. Популярные ORM для PHP: Eloquent (Laravel), Doctrine.
#### Пример с Eloquent
1. Установите Eloquent через Composer:
composer require illuminate/database
2. Настройка:
<?php
require 'vendor/autoload.php';
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'my_database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);
$capsule->setAsGlobal();
$capsule->bootEloquent();
?>
3. Создание модели:
<?php
class User extends Illuminate\Database\Eloquent\Model {
protected $table = 'users';
}
$users = User::all();
foreach ($users as $user) {
echo "Имя: " . $user->name . ", Возраст: " . $user->age . "<br>";
}
?>
---
### 5. Миграции
Миграции позволяют управлять структурой базы данных через код.
#### Пример с Eloquent
1. Создайте миграцию:
<?php
use Illuminate\Database\Capsule\Manager as Capsule;
Capsule::schema()->create('users', function ($table) {
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});
?>
2. Примените миграцию:
<?php
Capsule::schema()->create('users', function ($table) {
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});
?>
🎯 Что дальше?
В следующей главе мы изучим работу с API, включая создание и использование RESTful API.
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
🎯 Что дальше?
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
🎯 Что дальше?
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
🎯 Что дальше?
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
🎯 Что дальше?
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)
В следующей главе мы изучим работу с API, включая создание и использование RESTful API. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀
#PHP #БазыДанных #PDO #ORM #Программирование #Телеграм
Подписывайтесь на наш канал: [https://t.me/Safety_Y](https://t.me/Safety_Y)