Каковы некоторые из самых безопасных способов подключения к базе данных с PHP?

Я все еще новичок в PHP и MYSQL, и я пытаюсь изучить как современные методы кодирования. Весь материал, который я нахожу в Интернете, кажется устаревшим.

Может ли кто-нибудь предложить что-нибудь для меня? Мне также интересно, если приведенный ниже код устарел? Если это действительно устарело, можете ли вы предложить более новые и безопасные методы?

<?php
    $connection = mysql_connect("localhost", "root", "");
    if (!$connection) {
        die("Oops, error happened: " . mysql_error());
    }
?>

Ответ 1

Используйте PDO функции.

Соединение с базой данных с использованием PDO:

$conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);

Ответ 2

Да, ваш код устарел. и mysql_connect, mysql_query и т.д. будут удалены в ближайшее время.

В основном есть два варианта использования: (без установки сторонних приложений)

Взгляните на http://php.net/manual/en/book.pdo.php

ИЛИ

использовать Mysqli http://php.net/manual/en/book.mysqli.php

Ответ 3

безопасные способы подключения к базе данных с PHP

Если вы ищете безопасные методы, вам на самом деле нужно устранить ваши запросы от инъекций. Расширение MySQL скоро будет устаревшим, это не значит, что теперь это не safe, это просто случай, когда сообщество отказалось от дальнейшей разработки для расширения.

Вы можете попробовать как PDO, так и mysqli для ваших запросов к базе данных, оба они хороши.

Ваш выбор должен зависеть от выбора базы данных -

PDO поддерживает около 12 различных драйверов, а mysqli поддерживает только MySQL.

Список доступных драйверов PDO

CUBRID (PDO)
MS SQL Server (PDO)
Firebird/Interbase (PDO)
IBM (PDO)
Informix (PDO)
MySQL (PDO)
MS SQL Server (PDO)
Oracle (PDO)
ODBC and DB2 (PDO)
PostgreSQL (PDO)
SQLite (PDO)
4D (PDO) 

Источник - pdo-drivers-in-php

поддержка API

PDO и mysqli оба предлагают объектно-ориентированный API, но MySQLi также предлагает procedural API.

Ответ 4

При доступе к базе данных в PHP у нас теперь есть два варианта: MySQLi и PDO.

Чтобы выбрать тот, который вы хотите использовать, посмотрите здесь!

И если вы хотите знать, почему вы не должны использовать mysql_ *, то посмотрите этот пост!

Ответ 5

В первую очередь:

Да, строка устарела.

Вы можете использовать вместо mysqli_* функции, которые очень похожи на mysql_.

Во-вторых, если вы что-то знаете об объектно-ориентированном программировании, вы можете использовать PDO, как это предложено в других ответах.

Последнее, что нужно сказать, это никогда не показывать сообщение об ошибке пользователю. Ему не нужно знать, что что-то пошло не так, и ему не нужно знать, ЧТО пошло не так. Поэтому никогда die() с сообщением об ошибке.