• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mysqli_query() expects parameter 1 to be mysqli, null given in

webana

Mitglied
Hallo,

erhalte bei dem versuch etwas in die Datenbank einzufügen die nachfolgende Fehlermeldung ...

PHP:
mysqli_query($connect,"INSERT INTO hash_abfrage_o_treffer (date, md5) VALUES(CURDATE(), '$hash') ON DUPLICATE KEY UPDATE md5 = '$hash'");

Code:
Warning:  mysqli_query() expects parameter 1 to be mysqli, null given in xyz on line 36

Benutzte den oben genannten Aufbau je nach dem was man macht 3 mal. Und beim letzten funktioniert es auch ...

Habe schon bei google nach mysqli_query insert into geschaut aber keine fehler bzw. lösung gefunden ...

$connect gibt es ....

Gruß Alex
 
Werbung:
:( $connect ist kaputt :(

Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Hallo,

das sagt es mir nach punkt 2 und 3 jetzt auch ... Ich kapier gerade nur nicht wieso?

Aufbau:

1. Datenbank verbindung
2. Funktion (Hat bei mysql ohne i auch wunderbar funktioniert) ...
3. Inhalt und ein Script bei dem insert into auch vorkommt und auch funktioniert ...

Und ersetzt ich $connect bei den Problemzeilen durch mysqli_connect("localhost","abcd","passwort","abcd") ... funktioniert es!

Muss ich jetzt die Datenbank Verbindung jetzt auch in die Funktion hineinschreiben bzw. includen ... Oder was ist da los?

Gruß Alex
 
Werbung:
Kannst du bisschen mehr Code zeigen?
Könnte es vielleicht sein, dass du mysqli_query in einer function hast aber $connect außerhalb der Function deklarierst?
Weil dann kennt mysqli_query $connect nicht, denn du müsstest es per Parameter in die function übergeben.
 
Kannst du bisschen mehr Code zeigen?
Könnte es vielleicht sein, dass du mysqli_query in einer function hast aber $connect außerhalb der Function deklarierst?
Weil dann kennt mysqli_query $connect nicht, denn du müsstest es per Parameter in die function übergeben.

Genau so ... Das mit dem Parameter wäre eine Option ... wird gleich getestet ...

Edit: Das war's ... Danke !!!

Achja, sehe es richtig, das man bei mysqli leichter mehrere Datenbanken verwenden kann (Falls man es mal braucht)?

Alex
 
Hier ist nochmal ein Link zum nachlesen warum deins nicht geklappt hatte
Gewöhn dir aber nicht global an wie in den Beispielen, dies wird als schlechten Programmierstil angesehen.
Also wenn du Variablen brauchst, immer über Parameter an die Funktion übergeben

Achja, sehe es richtig, das man bei mysqli leichter mehrere Datenbanken verwenden kann (Falls man es mal braucht)?

So wie ich das verstehe, ja man kann leichter die DB switchen mit "mysqli_select_db" aber ich persönlich hab es noch nie gebraucht. Und falls doch, erstelle ich mir lieber zwei PDO Objekte.
 
Werbung:
Tag auch,

gerade die gleiche Meldung ... Gegoogelt, und am Avatar erschrocken ;-)

Fehler dieses mal: Das ganze mysqli_connect zeug stand nach if( isset( $_POST['oderDochSüdmail'] ) ) ... was bis jetzt auch keine Probleme bereitete, da erst nach dem absenden der Daten auf die Datenbank zugegriffen wurde und jetzt habe ich halt eine DB anfrage schon vorher getätigt und suche mir einen ab ...

Kann auch passieren ..

Gruß Alex
 
Zurück
Oben