Author Topic: SQL Commands ... Dokumentation  (Read 382 times)

Offline markherrmann

  • Posts: 82
SQL Commands ... Dokumentation
« on: January 28, 2019, 09:47:35 PM »
Hi Leute,
neues Projekt ... die alten Ideen aber von Beginn an sauber coden.
War auf der Suche nach einem einfachen Problem, find aber keine Dokumentation oder Beispiele. Deshalb frag ich einfach mal.

Gesucht hab ich ein einfaches affected_rows nach einem UPDATE Query.
Ich möchte einfach, dass meine Funktion welche das Update mach zurück gibt ob erfolgreich oder nicht...

Ich starte innerhalb der funktion mit:
Code: [Select]
global $database, $wb;
$sql_command = "UPDATE...."
$get_db = $database->query($sql_command);

aber wie entlocke ich dem affected_rows?
Mein Versuch über $errorcode = $get_db->affected_rows(); ging schon mal gar nicht.

Freu mich auf die schlauen Köpfe hier.


Offline markherrmann

  • Posts: 82
Re: SQL Commands ... Dokumentation
« Reply #1 on: January 28, 2019, 10:46:21 PM »
Hab mir vorerst mal mit nem Trick geholfen...
Nach dem Update mach ich nen 2. Request mit SELECT und prüfe ob der neue erwartete Datensatz gefunden wurde.
Das ganze bewerkstellige ich einfach mit...
Code: [Select]
$db_found = $db_query->numRows();
Nicht optimal, aber hilft mir erstmal weiter.

Offline Luisehahne

  • WebsiteBaker Org e.V.
  • **
  • Posts: 4366
  • Gender: Male
    • Webdesign und Entwicklung WebsiteBaker
Re: SQL Commands ... Dokumentation
« Reply #2 on: January 28, 2019, 11:41:24 PM »
Vielleicht hilft dir das weiter
http://php.net/manual/de/mysqli.affected-rows.php

Dietmar
Immer nur von der Zukunft reden, die Gegenwart vergessen und auf die Vergangenheit schimpfen
Neues Unwort: Schnappatmung

Offline markherrmann

  • Posts: 82
Re: SQL Commands ... Dokumentation
« Reply #3 on: January 29, 2019, 06:29:55 PM »
Vielen Dank...

Offline jacobi22

  • Posts: 5865
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: SQL Commands ... Dokumentation
« Reply #4 on: January 29, 2019, 07:03:24 PM »
Wenn du aber das WB-eigene database-Object benutzt (wie dein Code oben zeigt), kannst du auch die Methoden von dort benutzen. Im Ordner admin oder in den mitgelieferten Modulen gibt es da jede Menge Code zum Abschauen

z.b. (ganz einfach)
if (!$database->query($sql)){
        .... 
deine Aktion bei einem Fehler .....
    }


oder (wirft einen Fehler in die wb-eigene error-log)

if (!$database->query($sql)){
            throw new \
Exception ($database->get_error());
        }


oder mit eigener Fehlermeldung
if (!$database->query($sql)){
    throw new \
Exception('das war einmal nix mit Update (Zeile 85): '.$database->get_error());
        }
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline markherrmann

  • Posts: 82
Re: SQL Commands ... Dokumentation
« Reply #5 on: January 29, 2019, 09:14:58 PM »
Super, genau was ich suchte. Die WB Variablen kann man leicht googeln aber sowas findet man nur mit mühe im WB Quellcode. Ich bin früher mal von den direkten SQL Befehlen weg zur WB Klasse und war davon immer angetan, wie man mit mit 2 einfachen zeilen eine. Request macht.

Offline markherrmann

  • Posts: 82
Re: SQL Commands ... Dokumentation
« Reply #6 on: January 29, 2019, 09:38:48 PM »
Noch ne kleine Anmerkung, das neu eingeführte FTAN find ich mal so richtig cool. Macht vieles einfacher. Habt ihr wirklich gut gemacht. Danke.

Offline jacobi22

  • Posts: 5865
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: SQL Commands ... Dokumentation
« Reply #7 on: January 30, 2019, 03:23:58 AM »
weiß ja nicht, was du da vor hast, aber das Wrapper-Modul (als Page-Modul) bzw das Modul OutputFilter (als AdminTool) zeigt die Richtung in Sachen Modulstruktur. Hat man dieses Prinzip einmal verstanden, ist der Aufwand nur noch halb so groß. Das Wrapper-Modul ist sehr einfach gestrickt, hat ja nur die eine Seite im Backend, von daher nicht unbedingt die ideale Vorlage für ein komplexeres Projekt, es eignet sich aber prima, um das Grundprinzip zu verstehen.

Braucht dein Modul z.b. ein eigenes Menü, sieht das in der Twig-Datei z.b. so aus




Durch Abfangen und Auswerten des hidden-Feld "cmd" in der modify.php bzw save.php lassen sich dann auch andere Seiten erreichen

Eine modify.php schaut dann z.b. so aus (analog dann in der save.php mit anderen Commands)



so erreiche ich dann diese Dateien im cmd-Ordner


was mich da begeistert, ist die Einfachheit der Datenaufbereitung im Vergleich zum Aufwand, der mit der PHPLIB benötigt wird. Außerdem bietet TWIG dann wiederum eigene Möglichkeiten, Schalter zu setzen. Für die PHPLib mußte das alles vorher im Code passieren, auslesen, Bedingungen setzen, Platzhalter belegen usw. Das kann mit Twig direkt im Code des Templates erfolgen.

Wo es möglich ist, verwende ich auch gern Modalfenster, ein Overlay über die aktuelle Seite, ähnlich einem Popup, am Gästebuch, das ich gerad auf CMD-System umbaue, z.b. für das Bearbeiten/Freischalten der Einträge und Einfügen von Admin-Kommentaren. Dies spart dann wieder einen Reload bzw die Umschaltung der Seite, wie im aktuellen Modul nötig.




Wer nicht will, findet Gründe, wer will, findet Wege.

Offline evaki

  • Posts: 2702
Re: SQL Commands ... Dokumentation
« Reply #8 on: January 30, 2019, 07:31:28 AM »
Quote
Die WB Variablen kann man leicht googeln aber sowas findet man nur mit mühe im WB Quellcode.
Die WB-Hilfe tut's auch.
MfG. Evaki