Visa ett inlägg
Oläst 2013-06-15, 13:26 #18
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Här kommer ett exempel på kod för att använda den objectoerienterade paradigmen för PDO och getConnection ()-metoden.

Det här är bara ett enkelt exempel på hur man kan göra. Jag har även lagt in felhantering med 'try {} Catch {}'....

Jag har valt att göra metoden getConnection() static så det inte går att skapa mer än en instans, som i sig görs genom att Connection bevaras i en static deklarerad variabel som jag initierar till null (static $dbconnection = null).

I detta fall heter min databas 'Test' därav namnet 'ApplicationDatabaseTest', om jag använder flera databaser i min applikation så kan jag enkelt kopiera denna klass och om jag exempelvis har en annan databas som heter 'Webbshop' så skulle klassen kunna heta 'ApplicationDatabaseWebbshop' .

För att hämta Connection så skriver man så här från sina anrop:

Kod:
$dbConn = ApplicationDatabaseTest::getConnection();
Kod:
<?php
/* 
 ApplicationDatabaseTest.PHP
 Allows PHP to connect to your database
*/
class ApplicationDatabaseTest
{
	// Database Variables (edit with your own server information)
	static $server = 'MyHost'; 	// exempelvis: 'localhost'
	static $user = 'MyUserID';	// exempelvis: 'kalle'
	static $password = 'MyPassword';// exempelvis: 'nYs9kGu4rb'
	static $database = 'MyDatabase';// exempelvis: 'MySampleDB'
	 
	// Get Connection to Database
	static function getConnection() 
	{ 
	    static $dbconnection = null;
	    try
	    { 
		    if (is_null($dbconnection)) 
		    { 
				$dbconnection = new PDO('mysql:host=' . self::$server.';dbname=' . self::$database, self::$user, self::$password);
		    }
		}
		catch (PDOException $e) 
		{
	    	throw new Exception("Error: " . $e->getMessage() . "",0,$e); 
		    die();
			return null; 
		}
		catch (Exception $e)
		{
	    	throw new Exception('Error: Can not connect to database.',0,$e); 
		}
		return $dbconnection; 
	}

} 
?>

Senast redigerad av Conny Westh den 2013-06-15 klockan 13:40
Conny Westh är inte uppkopplad   Svara med citatSvara med citat