PHP MySQL INSERT return-Wert mit einer Abfrage-Ausführung
Gibt es etwas zurückgegeben von MySQL/PHP auf eine INSERT-query ausgeführt wird? Hier ist meine Funktion, die ich in einer KLASSE.
function mysqlQuery($query) {
//Gets the results from the query
$results = mysql_query($query, $this->connection);
//Loops through the queried results as an multi-dimensional array
while($rows = mysql_fetch_array($results, MYSQL_ASSOC)) {
//Push results to single array
$rs[] = $rows;
}
//Return results as array
return $rs;
}
Dies ist, wie ich die Funktion aufrufen
$rs = $dbh->mysqlQuery($query);
Aber die Ausführung einer INSERT
Abfrage der $rs
gibt nichts zurück. Funktioniert meine Funktion brauchen Sie Hilfe oder ist dies das Standard-Verhalten? Irgendwelche Tipps wäre auch hilfreich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
LEGEN Sie einfach true oder false zurückgibt. um tatsächlich etwas zurückgeben nützlich ist, benötigen Sie ein WÄHLEN Sie oder ähnlichen Abfrage. es gibt kein Ergebnis zu Holen mit EINFÜGEN.
Aus der php-Dokumentation:
Return-Werte
Für
SELECT
,SHOW
,DESCRIBE
,EXPLAIN
und andere Aussagen der Rückkehr resultsetmysql_query()
gibt eine Ressource zurück bei Erfolg, oderFALSE
auf Fehler.Für andere Arten von SQL-Anweisungen,
INSERT
,UPDATE
,DELETE
,DROP
usw.mysql_query()
zurückTRUE
auf Erfolg oderFALSE
auf Fehler.Dem Ergebnis Ressource übergeben werden sollen
mysql_fetch_array()
und andere Funktionen für den Umgang mit den Ergebnis-Tabellen, um den Zugriff auf die zurückgegebenen Daten.Verwenden
mysql_num_rows()
um herauszufinden, wie viele Zeilen zurückgegeben wurden, für eineSELECT statement
odermysql_affected_rows()
um herauszufinden, wie viele Zeilen betroffen waren durch eineDELETE
,INSERT
,REPLACE
oderUPDATE statement.
mysql_query()
auch nicht und zurückFALSE
wenn der Benutzer nicht über die Berechtigung zum Zugriff auf die Tabelle(N), auf die die Abfrage verweist.Aus php.net http://us2.php.net/mysql_query
In der Regel, wenn die devs bauen-home-Funktionen manipuliert Abfragen, verwenden Sie zwei Methoden. Einer, "Abfrage", verwendet für Wählt und co, und die eine, "exec", andere INSERTs, UPDATEs und andere (wie in der PDO-Erweiterung).
Wenn Sie möchten, um Ihre Funktion, fügen Sie eine IF-Anweisung in der Schleife die überprüfung der Art der $Ergebnisse (mit einem is_resource() zum Beispiel)
Im Beispiel unten, ich füge zu meinem insert-Klausel die "Rückkehr" zusammen mit den primary key meiner Tabelle, dann nach dem ausführen, ich mache eine fetch-immer ein array mit dem Wert der zuletzt eingefügten id.
Quelle
Dies ist zwar ein sehr Alter thread, es ist immer noch relevant. Und für diejenigen, die stolpern das (wie ich), nicht aufgeben! Es gibt Optionen. In der Tat, siehe diese Antwort auf SO
Auch für sqli und pdo, dies sehen
Im wesentlichen, eine insert-Anweisung, gefolgt von einer der Funktionen aufgeführt, die in den Antworten wird geben Sie die ID des letzten Datensatzes.