PHP MySQL INSERT Rückgabewert mit einer Abfrageausführung

8

Wird bei einer INSERT-Abfrage etwas von MySQL / PHP zurückgegeben? Hier ist meine Funktion die ich in einer CLASS habe.

%Vor%

So rufe ich die Funktion

auf %Vor%

Aber beim Ausführen einer INSERT-Abfrage gibt das $ rs nichts zurück. Braucht meine Funktion Hilfe oder ist dies das Standardverhalten? Irgendwelche Tipps wären auch hilfreich.

DUH, danke, dass du mich daran erinnert hast, dass es TRUE / FALSE zurückgibt. Aus irgendeinem Grund hatte ich es in meinem Kopf, es hat tatsächlich einen anderen Wert zurückgegeben, aber nachdem ich meine Funktion betrachtet habe, sehe ich, dass ich nicht nach der TRUE / FALSE-Bedingung suche und nur das Ergebnis-Array durchlaufe.

Danke für alle richtigen Antworten, aber zuerst richtig antworten, hab die Punkte, Prost!

    
Phill Pafford 28.09.2009, 17:13
quelle

5 Antworten

27

INSERT gibt nur wahr oder falsch zurück. Um etwas Nützliches zurückzugeben, benötigen Sie eine SELECT- oder ähnliche Abfrage. Es gibt kein Ergebnis, das mit INSERT abgerufen werden kann.

    
helloandre 28.09.2009, 17:16
quelle
5

Aus der php-Dokumentation:

Rückgabewerte Für SELECT , SHOW, DESCRIBE, EXPLAIN und andere Anweisungen, die resultset zurückgeben, gibt mysql_query() eine Ressource bei Erfolg oder FALSE bei Fehler zurück.

Für andere Arten von SQL-Anweisungen, INSERT , UPDATE , DELETE , DROP usw. gibt mysql_query() TRUE bei Erfolg oder FALSE bei Fehler zurück.

Die zurückgegebene Ergebnisressource sollte an mysql_fetch_array() und andere Funktionen für den Umgang mit Ergebnistabellen übergeben werden, um auf die zurückgegebenen Daten zuzugreifen.

Verwenden Sie mysql_num_rows() , um herauszufinden, wie viele Zeilen für ein SELECT statement oder mysql_affected_rows() zurückgegeben wurden, um herauszufinden, wie viele Zeilen von einem DELETE , INSERT , REPLACE oder UPDATE statement. betroffen waren.

mysql_query() wird ebenfalls fehlschlagen und FALSE zurückgeben, wenn der Benutzer nicht berechtigt ist, auf die von der Abfrage referenzierten Tabellen zuzugreifen.

    
Ricardo 28.09.2009 17:17
quelle
0

Von php.net Ссылка

  

Für SELECT, SHOW, BESCHREIBEN, EXPLAIN   und andere Anweisungen zurückgeben   resultset, mysql_query () gibt a zurück   Ressource bei Erfolg oder FALSE an   Fehler.

     

Für andere Arten von SQL-Anweisungen   EINFÜGEN, AKTUALISIEREN, LÖSCHEN, TROPFEN usw.   mysql_query () gibt bei Erfolg TRUE zurück   oder FALSE bei einem Fehler.

    
Grant 28.09.2009 17:18
quelle
0

Wenn Devs Hausfunktionen zum Bearbeiten von Abfragen erstellen, verwenden sie im Allgemeinen zwei Methoden. Eins, "Abfrage", verwendet für SELECTs und co, und eine, "exec", andere INSERTs, UPDATEs und andere (wie in PDO-Erweiterung).

Wenn Sie Ihre Funktion beibehalten möchten, fügen Sie eine IF-Anweisung um die Schleife hinzu und überprüfen Sie den Typ von $ result (mit einem is_resource () zum Beispiel)

    
swordofpain 28.09.2009 17:49
quelle
0

Im Beispiel unten füge ich meiner insert-Klausel das "returning" zusammen mit dem Primärschlüssel meiner Tabelle hinzu, und nach dem Ausführen führe ich einen Abruf durch, um ein Array mit dem Wert der zuletzt eingefügten ID zu erhalten.

%Vor%

Quelle

    
shamsieh76 25.09.2017 16:38
quelle

Tags und Links