Ответ 1
Используйте PDO
функции.
Соединение с базой данных с использованием PDO:
$conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
Я все еще новичок в PHP и MYSQL, и я пытаюсь изучить как современные методы кодирования. Весь материал, который я нахожу в Интернете, кажется устаревшим.
Может ли кто-нибудь предложить что-нибудь для меня? Мне также интересно, если приведенный ниже код устарел? Если это действительно устарело, можете ли вы предложить более новые и безопасные методы?
<?php
$connection = mysql_connect("localhost", "root", "");
if (!$connection) {
die("Oops, error happened: " . mysql_error());
}
?>
Используйте PDO
функции.
Соединение с базой данных с использованием PDO:
$conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
Да, ваш код устарел. и mysql_connect, mysql_query и т.д. будут удалены в ближайшее время.
В основном есть два варианта использования: (без установки сторонних приложений)
Взгляните на http://php.net/manual/en/book.pdo.php
ИЛИ
использовать Mysqli http://php.net/manual/en/book.mysqli.php
безопасные способы подключения к базе данных с 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
.
При доступе к базе данных в PHP у нас теперь есть два варианта: MySQLi и PDO.
Чтобы выбрать тот, который вы хотите использовать, посмотрите здесь!
И если вы хотите знать, почему вы не должны использовать mysql_ *, то посмотрите этот пост!
В первую очередь:
Да, строка устарела.
Вы можете использовать вместо mysqli_*
функции, которые очень похожи на mysql_
.
Во-вторых, если вы что-то знаете об объектно-ориентированном программировании, вы можете использовать PDO, как это предложено в других ответах.
Последнее, что нужно сказать, это никогда не показывать сообщение об ошибке пользователю. Ему не нужно знать, что что-то пошло не так, и ему не нужно знать, ЧТО пошло не так. Поэтому никогда die()
с сообщением об ошибке.