PEAR DB Funktionen

edit | delete

Autor: Vilma Plum

eingetragen: Mittwoch, 24. August 2005 um 12:01 Uhr (34/2005 Kalenderwoche)

geändert: Mittwoch, 24. August 2005 um 12:01 Uhr (34/2005 Kalenderwoche)

Keywords: limitQuery nextId

Kategorien: PHP,

Text:

1. ERROR-Handling bei Nutzung von PEAR:
Es gibt verschiedene Methoden, Fehler über Pear abzufangen. Eine ist die Erstellung einer eigenen error-handling-Funktion. Beispiel siehe unten.
Weitere sind hier zu finden:
http://http://php-mag.net/itr/online_artikel/psecom,id,388,nodeid,...


2. Rückgabe der lastinsertid über DB
DB bietet die Möglichkeit, die lastinsertid auch bei Nutzung verschiedener DB's zu erhalten. Wird bei der Funktion nextId der zweite Parameter nicht übergeben, so versucht DB eine sequenztabelle zu erzeugen. Bei MYSQL funktionierts aber gut mit Parameter FALSE.


3. Limitierte Abfragen in DB
Sind auch über DB zu realisieren. Anfangswert und Anzahl wird bei Abfrage-Aufruf mit übergeben.

Quellcode:  

zu 1:
require_once 'PEAR.php';
require_once 'DB.php';

function ownerror_handler(&$obj) {
  $msg = $obj->getMessage();
  $code = $obj->getCode();
  $info = $obj->getUserInfo();
  printf('<h2 style=color:#cc0000>%s (%d)</h2>', $msg, $code);
  if ($info) {
    print 'Debug info: <pre>';
    print htmlspecialchars($info);
    print "</pre>\n";
  }
}
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, "ownerror_handler");
$connection = DB::connect('mysql://dox_edit:techies@localhost/infosys2');

zu 2:
require_once 'DB.php';
PEAR::setErrorHandling(PEAR_ERROR_DIE, "Error: %s<br />\n");
$db = DB::connect('mysql://dox_edit:techies@localhost/techdox');
/*
#letzte Insert_id als Rueckgabe-Wert
$db->expectError(DB_ERROR_ALREADY_EXISTS);
$err = $db->query("INSERT INTO cats2  VALUES(NULL,?)",array($_GET['name']));
$id=$db->nextId('cats2',false);
echo $id."<br>";

zu 3:
$sql="SELECT * FROM cats ORDER BY cats ASC";
$res=$db->limitQuery($sql, $_GET['from'],5);
while($res->fetchInto($row,DB_FETCHMODE_ASSOC))
{
  extract($row);
  printf('<a href="pear_test2.php?id=%d">%s</a><br>',$cats_id,$cats);
}