mysqli_fetch_assoc () erwartet, dass Parameter 1 mysqli_result ist, boolean gegeben [duplicate]

9

Ich bin ziemlich neu in PHP und MySQL und ich kann das einfach nicht herausfinden. Ich habe überall im Forum gesucht, aber keine Antwort gefunden, die ich nachvollziehen kann. Ich benutzte ursprünglich mysql_fetch_assoc (), aber ich konnte nur nach Zahlen suchen und bekam auch Fehler bei der Suche nach Buchstaben. Ich hoffe, ich bin hier auf dem richtigen Weg. Vielen Dank im Voraus für Ihre Hilfe!

%Vor%     
user1504463 05.07.2012, 15:47
quelle

5 Antworten

18

Dies passiert, wenn Ihr Ergebnis kein Ergebnis ist (sondern stattdessen ein "false"). Sie sollten diese Zeile ändern

%Vor%

dazu:

%Vor%

weil das "kann $ Variablen während nicht interpretieren kann".

Funktioniert gut mit ganzen Zahlen (Zahlen), für Strings müssen Sie die Variable $ in einfache Anführungszeichen setzen, wie

%Vor%

Wenn Sie mit einfachen Anführungszeichen arbeiten wollen / müssen, dann kann PHP die Variablen NICHT interpretieren, Sie müssen es so machen:

%Vor%     
Sliq 05.07.2012, 15:50
quelle
12
%Vor%

Dies bedeutet, dass der erste übergebene Parameter ein boolescher Wert (true oder false) ist.

Der erste Parameter ist $result und false , weil in der Abfrage ein Syntaxfehler aufgetreten ist.

%Vor%

Sie sollten eine Anforderungsvariable niemals direkt in eine SQL-Abfrage einschließen, da die Benutzer sonst SQL in Ihre Abfragen einfügen können. (Siehe SQL injection .)

Sie sollten die Variable ausschließen:

%Vor%

Oder besser: Prepared Statements .

    
arnaud576875 05.07.2012 15:51
quelle
4

Sie geben nur Ihre SQL-Anweisung an, die den Variablen Text statt Variablen gibt.

%Vor%     
johnmadrak 05.07.2012 15:50
quelle
2

Mysqli nutzt die objektorientierte Programmierung. Verwenden Sie stattdessen diesen Ansatz:

%Vor%

Lassen Sie mich wissen, wenn Sie irgendwelche Fragen haben, konnte ich diesen Code nicht testen, also müssen Sie vielleicht dreifach überprüfen!

    
Ben Ashton 05.07.2012 15:56
quelle
0

Was passiert in Ihrem Code, wenn $usertable keine gültige Tabelle ist oder keine Spalte enthält? PartNumber oder part ist keine Zahl.

Sie müssen $ partid umgehen und auch das Dokument für mysql_fetch_assoc () lesen, da es einen booleschen Wert

zurückgeben kann     
TerryE 05.07.2012 15:51
quelle

Tags und Links