PDO

Php 5-ga lisandus veel üks tore lisand nagu PDO, mis lubab meil kastuda OO koodi. PDO ei ole mingi abstraktne vahekiht, mis vahendaks andmebaasi vahelist kiht nagu seda PearDB on.

PDO kasutamiseks on vaja luua ühendus, tavaliselt ehk oled andmebaasi ühendamiseks kasutanud mysql_connect funktsiooni, kuid PDO-ga käib ühendus nii:


< ?php
 try {
     $db = new PDO('mysql:dbname=andmebaasi_nimi;host=localhost', 'kasutaja', 'parool');
 } catch (PDOException $e) {
     echo "Tekkis viga ". $e->getMessage();
 }
 ?>

PDO kasutab vigade mehhanismiks try-catch viisi. Kui töö on lõpetatud on soovitav katkestada ühendus tavaliselt teeb seda PHP automaatselt, kuid kui vaja ka varem katkestada ühendus tuleb lisada selline väärtus $db = null. Päringute tegemiseks on PDO-s meetod nimega exec. Exec meetod väljastab täisarvu sõltuvalt kas päring midagi mõjutas. Näide kasutades INSERT päringut.

 < ?php
 try {
 	$db = new PDO('mysql:dbname=andmed;host=localhost', 'root', '');
 	$rows = $db->exec("INSERT INTO users VALUES(4,'Mari', md5('123456'), NOW());");
 	echo $rows;

$db = null;
 } catch (PDOException $e) {
 	echo "Tekkis viga ". $e->getMessage();
 }

?>

SELECT käsu kasutamiseks on vajalik PDO::query meetod, millega tagastatakse meile tulemus, mida saab väljastada kasutades foreach-i. Tulemuse väljastamiseks on võimalik kasutada ka SPL meetode.

 < ?php
 try {
 	$db = new PDO('mysql:dbname=andmed;host=localhost', 'root', '');
 	$sql = "SELECT * FROM users";

foreach($db->query($sql) as $row) {
 		echo $row['username'] .' '. $row['password'] ."<br />\n";
 	}

$db = null;
 } catch (PDOException $e) {
 	echo "Tekkis viga ". $e->getMessage();
 }

?>

Ette valmistatud päringud(prepared statements)

2 thoughts on “PDO

  1. Mul installeerimisel üks tore süsteemike. Kuid annab teada järgnevat
    You need to enable the PDO and PDO_MYSQL extensions in your php.ini file.

    On a windows server you can add the following lines in your php.ini
    extension=php_pdo.dll
    extension=php_pdo_mysql.dll

    On a Linux server you can compile php with the following option –with-pdo-mysql In your php.ini, add the following lines
    extension=pdo.so
    extension=pdo_mysql.so

    More information on the PHP website.
    Kasutan netpointi majutust ja seal ei ole php.ini😦 kuhu ja mida nüüd?

  2. Kardan et netpointi teenusepakkujal pole PDO installeeritud, proovi phpinfo teha ning vaata, kas PDO tugi on. Üldiselt küsi selgitust nepointi klienditeenindajalt.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s