Как грамотно работать с базой данных mysql из php?

Пользователь

от brook , в категории: PHP , 10 месяцев назад

Как грамотно работать с базой данных mysql из php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kaleigh , 10 месяцев назад

@brook 

Для работы с базой данных MySQL из PHP необходимо использовать расширение mysqli (MySQL Improved), которое предоставляет более безопасную и функциональную альтернативу устаревшему расширению mysql.


Вот пример грамотного использования mysqli для работы с базой данных MySQL из PHP:

  1. Подключение к базе данных:
1
2
3
4
5
6
7
8
9
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Ошибка подключения: " . $conn->connect_error);
}


  1. Выполнение SQL-запросов:
  • Чтение данных:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$sql = "SELECT * FROM table_name";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo "Поле1: " . $row["field1"] . ", Поле2: " . $row["field2"];
    }
} else {
    echo "Нет данных.";
}


  • Вставка данных:
1
2
3
4
5
6
$sql = "INSERT INTO table_name (field1, field2) VALUES ('value1', 'value2')";
if ($conn->query($sql) === true) {
    echo "Данные успешно вставлены.";
} else {
    echo "Ошибка при вставке данных: " . $conn->error;
}


  • Обновление данных:
1
2
3
4
5
6
$sql = "UPDATE table_name SET field1='new_value' WHERE condition";
if ($conn->query($sql) === true) {
    echo "Данные успешно обновлены.";
} else {
    echo "Ошибка при обновлении данных: " . $conn->error;
}


  • Удаление данных:
1
2
3
4
5
6
$sql = "DELETE FROM table_name WHERE condition";
if ($conn->query($sql) === true) {
    echo "Данные успешно удалены.";
} else {
    echo "Ошибка при удалении данных: " . $conn->error;
}


  1. Закрытие соединения с базой данных:
1
$conn->close();


Обратите внимание, что приведенные примеры представляют только основные операции с базой данных. В реальных проектах также рекомендуется использовать подготовленные выражения для безопасного взаимодействия с базой данных и учитывать особенности вашей конкретной базы данных и требования вашего проекта.

Пользователь

от magdalen_kub , месяц назад

@brook 

Отличный пример работы с базой данных MySQL из PHP с использованием расширения mysqli. Добавлю, что также есть другой способ работы с базой данных MySQL из PHP, который использует расширение PDO (PHP Data Objects). PDO обеспечивает более удобный и универсальный способ работы с различными типами баз данных, включая MySQL.


Вот пример подключения к базе данных MySQL и выполнения простых запросов с использованием PDO:


Подключение к базе данных:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // Устанавливаем режим ошибок PDO на исключения
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Подключение к базе данных успешно";
} catch(PDOException $e) {
    echo "Ошибка подключения: " . $e->getMessage();
}


Выполнение SQL-запросов:


Чтение данных:

1
2
3
4
5
6
7
8
9
$stmt = $conn->query("SELECT * FROM table_name");

if ($stmt->rowCount() > 0) {
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "Поле1: " . $row['field1'] . ", Поле2: " . $row['field2'];
    }
} else {
    echo "Нет данных.";
}


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

1
2
3
4
5
6
$sql = "INSERT INTO table_name (field1, field2) VALUES ('value1', 'value2')";
if ($conn->exec($sql)) {
    echo "Данные успешно вставлены.";
} else {
    echo "Ошибка при вставке данных.";
}


Обновление данных:

1
2
3
4
5
6
$sql = "UPDATE table_name SET field1='new_value' WHERE condition";
if ($conn->exec($sql)) {
    echo "Данные успешно обновлены.";
} else {
    echo "Ошибка при обновлении данных.";
}


Удаление данных:

1
2
3
4
5
6
$sql = "DELETE FROM table_name WHERE condition";
if ($conn->exec($sql)) {
    echo "Данные успешно удалены.";
} else {
    echo "Ошибка при удалении данных.";
}


Закрытие соединения с базой данных:

1
$conn = null;


Также важно использовать параметризованные запросы с подготовленными выражениями для предотвращения атак SQL-инъекций. Как правило, выбор между использованием mysqli и PDO зависит от конкретных требований вашего проекта и предпочтений в работе с базами данных.