Łączenie się z bazą przez PDO

0

Hejka, jak myslicie czy ten skrypt na laczenie z baza w PDO jest dobry? Czy moze byc jeszcze jakis lepszy?

<?php

session_start();

$DB_host = "localhost";
$DB_user = "root";
$DB_pass = "";
$DB_name = "dblogin";

try
{
     $DB_connection = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass);
     $DB_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $error)
{
     echo $error->getMessage();
}


?>
0

A jaki ma być jak skopiowałeś go z dokumentacji albo innej strony? Na czym ma ów dobroć polegać? Będzie działać. Ja bym się pozbył jednak tego dziwnego zapisu, którego nigdy nie trawiłem:

z:

$DB_connection = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass);

na:

$DB_connection = new PDO("mysql:host='.$DB_host.';dbname='.$DB_name.'",$DB_user,$DB_pass);

A jeśli już tak brniemy w szczegóły to według mnie ten kod:

$DB_host = "localhost";
$DB_user = "root";
$DB_pass = "";
$DB_name = "dblogin";

powinieneś napisać za pomocą stałych a nie zmiennych. Dane połączenia z bazą danych są rzeczą stałą, nie zmieniają się podczas działania apliacji.
http://php.net/manual/en/function.define.php

Pomijając już fakt, że ten kod powinien znaleźć się np. w konstruktorze w klasie np. Database :)

0

Dlatego wlasnie pytam jak to najlepiej zrobic poniewaz wzialem zeszyt i zaczalem zapisywac sobie np podstawowa strukture plikow i takie typowe podstawy ;)

Czyli taki kod bedzie o wiele lepszy:

<?php
class Database
{
    private $host = "...";
    private $db_name = "...";
    private $username = "...";
    private $password = "...";
    public $conn;

    public function dbConnection()
	{

	    $this->conn = null;

        try
		{
            $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
			$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);	
        }
		catch(PDOException $exception)
		{
            echo "Blad polaczenia " . $exception->getMessage();
        }

        return $this->conn;
    }
}
?>

1 użytkowników online, w tym zalogowanych: 0, gości: 1