Каков наилучший способ подключиться и запросить базу данных MySQL с помощью PHP? - PullRequest
1 голос
/ 17 ноября 2009

Это довольно простой вопрос, но я бы хотел кое-что прояснить.

Я видел несколько разных способов подключения и запроса к базе данных MySql с использованием PHP, но какой лучший способ подключения и создания запроса с использованием php?

Надеюсь, это имеет смысл.

Спасибо

Ответы [ 3 ]

7 голосов
/ 17 ноября 2009

Безусловно, лучший способ - использовать подготовленные операторы . Вы можете сделать это, используя PDO или mysqli, но я предпочитаю расширение PDO для его именованных параметров.

Почему готовые высказывания являются наилучшим способом? Потому что они заботятся о кавычках и экранировании параметров.

Плохой, старый, подверженный ошибкам, утомительный способ:

$result = mysql_query("SELECT * FROM users WHERE 
                       password='".mysql_real_escape_string($password)."'");

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

Хороший подготовленный способ утверждения:

$stmt = $dbh->prepare("SELECT * FROM users WHERE password=:password");
$stmt->bindParam(':password', $password);
$stmt->execute();

Экранирование сделано для вас, и вам даже не нужно беспокоиться о том, чтобы ставить кавычки вокруг типов параметров, которые в них нуждаются.

2 голосов
/ 17 ноября 2009

Используйте объектно-ориентированные версии , предполагая, что ваша версия php достаточно новая, чтобы поддерживать их. ИМХО они намного чище, чем суп со случайной функцией.

0 голосов
/ 17 ноября 2009

Не думаю, что это так просто, как сказать "лучший способ ..."

Лично я почти никогда не подключаюсь к базе данных, используя свой собственный код, обычно у меня есть фреймворк, который делает это для меня. Тем не менее, я бы использовал подход PHP Data Object (PDO) для подключения и запроса к базе данных, если бы писал небольшое автономное приложение.

См. справочные страницы для получения всей необходимой информации и примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...