PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysqli nicht gefunden


Don Stefano
25.02.2005, 15:20:31
Hallo zusammen,

ich betreibe mit XAMPP eine php Entwicklungsumgebung auf meinem PC.

Während der Entwicklung eines Systems, welches später einmal die Daten mehrerer verschiedener Quizspiele und Fragebögen - zugehörig zu bestimmten Personen - in einer mysql Datenbank speichern und abrufen soll, bin ich auf folgendes Problem gestoßen.

Ich wollte nun erst einmal etwas mit einer Benutzerverwaltung herumprobieren, die mittels Datenbankeinträgen und Sessions verschiedene User verwalten kann. Da ich als Einsteiger um ehrlich zu sein, mit den hier häufig zitierten Tutorials nicht gut klarkomme, versuche ich mittels einer meiner php Bücher (php5 & MySql 4.1) ein Anmeldeskript zu verwenden, welches in dem Buch bei einem Votingsystem verwendet wird.

Ich beabsichtige (bzw. habe schon) alles um das Voting zu entfernen und die Anmeldung für meine eigenen Zwecke anzupassen.

Ich bin eigentlich sicher, dass ich dies so weit auch richtig gemacht habe. Auf einer ersten Seite, wird mit 2 html-Formularen die Möglichkeit gegeben sich einzuloggen oder als User neu anzulegen.

Wenn ich nun z.B. irgendeinen Namen eingebe und mich einlogge (was nicht funktionieren dürfte wenn ich mich als User noch nicht angelegt habe) erhalte ich die Fehlermeldung:

Fatal error: Class 'mysqli' not found in C:xampphtdocsdon3adminxmysqli.php on line 3

Die Datei xmysqli.php legt verschiedene Parameter fest. Hier der Code:

<?php

class xmysqli extends mysqli {

const host = "localhost";
const user = "root";
const passwd = "";
const mydb = "votum";

function __construct()
{
parent::__construct(self::host, self::user, self::passwd, self::mydb);
}

function echoquery($query)
{
echo "<p>$query</p>";
$result = $this->query($query);
if ($this->errno)
{
echo($this->error);
return NULL;
}

echo '<table border cellpadding="5"><tr>';
echo '<th>[Nr]</th>';
while ($field = $result->fetch_field())
echo "<th>$field->name</th>";
echo "</tr>";
$rec = 0;
while ($row = $result->fetch_row())
{
echo "<tr><td>$rec</td>"; $rec++;
for ($i = 0; $i < $result->field_count; $i++)
echo "<td>".htmlentities($row[$i])."&nbsp;</td>";
echo "</tr>n";
}
echo "</table>";
$result->close();
return TRUE;
}
}
?>


Mir ist schon klar, dass die Klasse "mysqli" fehlt. Auch dass sie Befehle / Funktionen betrifft, die erst ab MySql 4.1 vorliegen.

Ich habe die neueste XAMPP Version installiert, mit php 5.0.3 und mysql 4.1.10. Unterstützt XAMPP mysqli nicht, oder was habe ich nicht verstanden ?

Ich weiß leider nicht mehr weiter.

Bin dankbar für jede Hilfe

|Coding
25.02.2005, 15:44:49
hi,

wie du schon recht begriffen hast, fehlt die class mysqli. so, da die class xmysqli die methoden und eigenschaften der class mysqli erbt, heißt das , dass du noch eine weitere class haben musst. sprich entweder die classe mysqli ist nicht vorhanden oder sie wurde nicht inkludiert.

schau also mal nach ob, du eine class namens mysqli findest (im odner), wenn ja dann binde sie in xmysqli ein (require('datei.name')) oder kopier die class mit in die datei von xmysqli.

ist sie nicht vorhanden, musst du sehen wo du die herbekommst :-)

btw: xampp trifft bei diesem problem nicht die schuld...