Problem mit Extensions/Pear

mrepox

Erfahrenes Mitglied
Hi Freaks,

ich bekomme dieses Listing welches ich aus einem PHP/MYSQL Buch habe nicht ans laufen....

Hier mal den Code:

HTML:
<html>
<head>
  <title>Book-O-Rama Katalog-Suche</title>
</head>

<body>
  <h1>Book-O-Rama Katalog-Suche</h1>

  <form action="results_generic.php" method="post">
    Suchtyp auswählen:<br />
    <select name="searchtype">
      <option value="author">Autor
      <option value="title">Titel
      <option value="isbn">ISBN
    </select>
    <br />
    Suchbegriff eingeben:<br />
    <input name="searchterm" type=text>
    <br />
    <input type=submit value="Suchen">
  </form>

</body>
</html>

PHP:
<html>
<head>
  <title>Book-O-Rama Suchergebnisse</title>
</head>
<body>
<h1>Book-O-Rama Suchergebnisse</h1>
<?php
// kurze Variablennamen erstellen
$searchtype = $_POST['searchtype'];
$searchterm = $_POST['searchterm'];

$searchterm = trim($searchterm);

if (!$searchtype || !$searchterm) {
    echo 'Sie haben keine Details für die Suche eingegeben. Bitte gehen Sie zurück und versuchen es noch einmal.';
    exit;
}

if (!get_magic_quotes_gpc()) {
    $searchtype = addslashes($searchtype);
    $searchterm = addslashes($searchterm);
}
// für PEAR DB vorbereiten
require_once('c:/apachefriends/xampp/php/pear/DB.php');
$user = 'bookorama';
$pass = 'bookorama123';
$host = 'localhost';
$db_name = 'books';

// universellen Verbingungsstring oder DSN angeben
$dsn = "mysqli://$user:$pass@$host/$db_name";

// mit der Datenbank verbinden
$db = &DB::connect($dsn);

// prüfen, ob die Verbindung funktioniert
if (DB::isError($db)) {
    echo $db->getMessage();
    exit;
}

// Abfrage ausführen
$query = "select * from book where " . $searchtype . " like '%" . $searchterm . "%'";

$result = $db->query($query);

// prüfen, ob das Egebnis ok ist
if (DB::isError($result)) {
    echo $db->getMessage();
    exit;
}

// Anzahl der zurückgegebenen Zeilen ermitteln
$num_results = $result->numRows();

// jede Zeile anzeigen
for ($i = 0; $i < $num_results; $i++) {
    $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
    echo '<p><strong>' . ($i + 1) . '. Titel: ';
    echo htmlspecialchars(stripslashes($row['title']));
    echo '</strong><br />Author: ';
    echo stripslashes($row['author']);
    echo '<br />ISBN: ';
    echo stripslashes($row['isbn']);
    echo '<br />Preis: ';
    echo stripslashes($row['price']);
    echo '</p>';
}

// Verbindung zur Datenabank trennen
$db->disconnect();

?>
</body>
</html>

ZIEL DES GANZEN
-----------------------------

Abfrage einer DB nach Artikeln, in diesem Fall Bücher, durch Suchfunktion.
Ausgabe der Daten im nächsten Fenster.



Ich bekomme immer die Meldung :

DB Error: extension not found

Installiert habe ich Apachefriends auf XP Home, habe die DB eingerichtet, Benutzerrechte und Passwort gesetzt, und hoffentlich die PHP.INI auch richtig.

Kann mir jemand was dazu sagen Ich versuche es seit zwei Tagen und kriegs nicht hin.

Gruss Markus

PS: Ist das richtig das ich an dieser Stelle den Pfad auf die Extensions richten muss
PHP:
// für PEAR DB vorbereiten 
require_once('c:/apachefriends/xampp/php/pear/DB.php');
 
Zuletzt bearbeitet:
Also, da die Fluten von Antworten mich nicht weiterbrachten, habe ich das Problem selber gelöst.

Das Problem ist folgendes:

In dieser Mysql Abfrage wird die optimierte Form "mysqli" verwendet. Diese ist immer noch nicht Standart, soll aber die Verbindung zwischen MySQL und PHP optimieren.

Grundlage ist allerdings das diese Extension als DLL vorhanden ist und aus der PHP.INI aktiviert wird.

Im Klartext, in meiner INI Datei war diese Extension gar nicht drin. Gegebenfalls einfach
bei den Extensions reinschreiben und die php.ini speichern:

extension=php_mysqli.dll

Sicherstellen, das im Ordner EXT (Extensions(Bei XAMPP aufpassen Einer ist für PHP4, einer für PHP5)) auch die php_mysqli.dll vorhanden ist.

Checken ob der Extension Path korrekt zeigt und schon läuft alles.

Falls es jemand genauer wissen möchte, bitte eine PN an mich.

Gruss Markus
 
Zurück