Правильный способ подключения к базе данных - PullRequest
0 голосов
/ 14 марта 2012

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

<?php
require_once('MDB2.php');
include "mysql-connect.php"; //to provide $username='...'; $password='...'; etc

$dsn = "mysql://$username:$password@$host/$dbName"; 

$db =& MDB2::connect($dsn); 
if (PEAR::isError($db)) { 
    die($db->getMessage());
}

$table_catering="catering";
$table_venue="venue";

$db->setFetchMode(MDB2_FETCHMODE_ASSOC);

$sql="SELECT * FROM $table_venue";

$res =& $db->query($sql);
if (PEAR::isError($res)) {
    die($res->getMessage());
}

echo "{$res->numRows()}<br />";

$row = $res->fetchRow();

echo $row[strtolower('name')]; //oops MDB2_FETCHMODE_ASSOC converts field names to lower case 
?>

Правильн ли этот метод?Кто-нибудь может порекомендовать альтернативный / лучший способ?

Кто-то сказал мне его PHP4 и подвержен ошибкам и ошибкам.Потому что я все время подключался к базе данных следующим образом.Наши заметки читаются следующим образом:

В этом разделе обсуждаются возможности PHP-скрипта с базой данных.PHP имеет отдельные встроенные библиотеки для десятка различных технологий баз данных.Фактически вы будете использовать базу данных MySQL, но при использовании PEAR MDB2, части библиотеки PEAR (PHP Extension and Application Repository), большая часть кода не будет зависеть от типа используемой базы данных (не зависит от поставщика).Если вы хотите посмотреть, как выглядит специфичный для mysql код, вы можете посетить этот более старый материал.

Одна из особенностей PEAR DB заключается в том, что она использует объектно-ориентированную нотацию.Это имеет важные последствия в отношении модульности и безопасности, но непосредственное и поверхностное следствие состоит в том, что вместо написания чего-то вроде $ res = fetch ($ db) [имеется в виду: используйте функцию fetch (), чтобы получить что-то из базы данных $ db], что вам нужнонапишите $ res = $ db-> fetch () [значение: перейдите к объекту базы данных $ db и примените его метод fetch ().] Для проверки на наличие ошибок вам также понадобится использовать методы, принадлежащие классу в этом стиле: CLASSNAME :: methodname ().

...