Der folgende Beitrag wurde am 12. 12. 2009, 16:57 Uhr von Intelfanatiker veröffentlicht.
Hallo,
ich habe folgende Fehlermeldung und kann damit nicht wirklich etwas anfangen.Call to a member function prepare() on a non-object
Warum kann ich es nicht in eine Funktion binden?function Einzelseite_MYSQL_Entsorgung()
{
if (mysqli_connect_errno() == 0)
{
$sql = 'SELECT * FROM `daten` WHERE id = (?)';
// Statement vorbereiten
$ergebnis = $db->prepare( $sql );
// Holen wir das Feld der FahhandelsID
$ergebnis->bind_param( 's', $fachhandelid );
// an die DB schicken
$ergebnis->execute();
// Ergebnis an Variablen binden
$ergebnis->bind_result( $id, $firma, $strasse, $plz, $ort, $kreis, $tel, $fax, $ansprechpartner, $oeffnung_mo, $oeffnung_di, $oeffnung_mi, $oeffnung_do, $oeffnung_fr, $oeffnung_sa, $oeffnung_so, $hinweis, $p1, $p2 );
// Ergebnisse ausgeben
while ($ergebnis->fetch())
{
}
}
else
{
// Es konnte keine Datenbankverbindung aufgebaut werden
echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: <span class="hinweis">' .mysqli_connect_errno(). ' : ' .mysqli_connect_error(). '</span>';
}
}
Der folgende Beitrag wurde am 12. 12. 2009, 17:03 Uhr von Encoder veröffentlicht.
> Call to a member function prepare() on a non-object
Wahrscheinlich weils $db nicht gibt. Dann geht auch $db->prepare nicht.
Der folgende Beitrag wurde am 12. 12. 2009, 17:10 Uhr von Intelfanatiker veröffentlicht.
> > Call to a member function prepare() on a non-object
> Wahrscheinlich weils $db nicht gibt. Dann geht auch $db->prepare nicht.
>
Hallo,
doch gibt es, es kommt aus der db.php die auch includet wird (vor der funktion.php) oder klappt das so nicht?
Der folgende Beitrag wurde am 12. 12. 2009, 17:21 Uhr von Encoder veröffentlicht.
Ich glaub nicht dass $db schon existiert? Du musst das sicher erst irgendwie erzeugen. Hab von oo-php nicht viel Ahnung, also Syntax und so. Schau dir mal irgendwo ein Beispiel an, da steht sicher sowas wie $db = new irgendwas...
Der folgende Beitrag wurde am 12. 12. 2009, 17:25 Uhr von ChrisB veröffentlicht.
Hi,
> > Wahrscheinlich weils $db nicht gibt. Dann geht auch $db->prepare nicht.
> doch gibt es, es kommt aus der db.php die auch includet wird (vor der funktion.php)
Es gibt eine Variable $db - aber die enthält nicht das, was du erwartest.
> oder klappt das so nicht?
*Ob* das Herstellen einer Verbindung zur Datenbank geklappt hat, oder nicht, das musst *du* überprüfen (und wenn nicht, entsprechend darauf reagieren).
Also informiere dich, wie man das bei der von dir verwendeten Datenbank-Schnittstelle macht.
MfG ChrisB
--
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
Der folgende Beitrag wurde am 12. 12. 2009, 17:34 Uhr von Guy Gaz veröffentlicht.
Hallo!
> doch gibt es, es kommt aus der db.php die auch includet wird (vor der funktion.php) oder klappt das so nicht?
Aber $db dürfte keine Instanz dessen sein, was Du benötigst - es ist kein Objekt laut der Fehlermeldung.
Was sagt?
var_dump($db);
Ciao
GG
--
"If I do not seek to understand what is happening here
- then I've got peanuts in my head!"
(I. Hosein)
Der folgende Beitrag wurde am 12. 12. 2009, 20:05 Uhr von dedlfix veröffentlicht.
Hi!
> ich habe folgende Fehlermeldung und kann damit nicht wirklich etwas anfangen.
> Call to a member function prepare() on a non-object
Wie die anderen schon sagten, diese Variable gibt es nicht. Wann immer du von PHP eine Meldung bekommst, die deiner Meinung nach nicht sein kann, kannst du davon ausgehen, dass PHP immer Recht hat und deine Meinung nicht stimmt. Prüf dann nach, was wirklich ist: mach eine Kontrollausgabe mit var_dump(). Außerdem solltest du immer das error_reporting auf E_ALL stehen haben (und display_errors auf on), damit dir PHP Notice-Meldungen ausgeben kann, die dich über Zugriffe auf nicht vorhandenes informieren.
> Warum kann ich es nicht in eine Funktion binden?
> function Einzelseite_MYSQL_Entsorgung()
> [...]
Um den ersten Satz meiner Antwort zu präzisieren: Die Variable gibt es in diesem Scope nicht. Funktionen haben nämlich ihren eigenen. Alles was draußen existiert, exisitiert innerhalb einer Funktion erst einmal nicht. Wenn du etwas von draußen benötigst, übergib es als Parameter. Eine schlechte Alternative wäre, mit global auf äußere Variablen zuzugreifen. Das ist deshalb schlecht, weil diese Funktion dann von äußeren Bedingungen abhängig ist und nicht mehr einfach wiederverwendet werden kann.
Lo!
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4