Author Topic: Datenbank: SQL-Update und Fehlermeldung  (Read 886 times)

Offline hansis100

  • Posts: 85
Datenbank: SQL-Update und Fehlermeldung
« on: October 12, 2016, 05:32:02 PM »
Hallo!

Ich versuche einen Datensatz in einer Tabelle zu aktualisieren.
Allerdings möchte ich ein Fehlerhandling einbauen. Wie kann ich das machen?

hätte es so versucht:

Code: [Select]
$sql = "UPDATE ".TABLE_PREFIX."mod_mpform_results_20 "
. "SET field33='$field33',"
.     "field73='$field73'"
. "WHERE session_id='$session_id' ";

$database->query($sql);

if($database->is_error()){
echo "Folgender Fehler trat bei der Abfrage auf: ".mysql_error() . "<br>";
}

nur leider wird keine Fehlermeldung ausgegeben.

lg
Hansi

Offline jacobi22

  • Posts: 5891
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Datenbank: SQL-Update und Fehlermeldung
« Reply #1 on: October 12, 2016, 07:04:28 PM »
Unter SP7 sollte dein Code bei einem Fehler zusammenbrechen, einen White Screen ergeben, da er mysql_error() verwendet

Standard-Fehlerausgabe im Backend wäre dies hier, kombiniere es mit deinem Code, wie du es brauchst

Code: [Select]
<?php // to show colored code only - not part of the code
if($database->is_error()) {
          
$admin->print_error($database->get_error());
      }
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline hansis100

  • Posts: 85
Re: Datenbank: SQL-Update und Fehlermeldung
« Reply #2 on: October 12, 2016, 08:27:06 PM »
danke für die Info.
Fehlermeldung wird angezeigt.

Wie meinst du das mit dem Backend?
Was macht der code $admin->... genau?

lg
Hansi

Offline DarkViper

  • Forum administrator
  • *****
  • Posts: 3028
  • Gender: Female
Re: Datenbank: SQL-Update und Fehlermeldung
« Reply #3 on: October 12, 2016, 08:50:00 PM »

kleiner Tip:

Das lässt sich noch etwas vereinfachen (und gleichzeitig an die sicheren Codingstandards anpassen)
Code: [Select]
<?php

$sql 
'UPDATE `'.TABLE_PREFIX.'mod_mpform_results_20` '
     
'SET `field33`=\''.$database->escapeString($field33).'\', '
     
.     '`field73`=\''.$database->escapeString($field73).'\' '
     
'WHERE `session_id`='.(int)$session_id;
if (!
$database->query($sql)) {
    
$admin->print_error('Folgender Fehler trat bei der Abfrage auf: '.$database->get_error().'<br>');
}

Manuela
Der blaue Planet - er ist nicht unser Eigentum - wir haben ihn nur von unseren Nachkommen geliehen

"You have to take the men as they are… but you can not leave them like that !" :-P
Das tägliche Stoßgebet: Oh Herr, wirf Hirn vom Himmel !

Offline hansis100

  • Posts: 85
Re: Datenbank: SQL-Update und Fehlermeldung
« Reply #4 on: October 13, 2016, 09:01:41 AM »
danke für die Hilfe - vorallem das mit den Codingstandards. Das habe ich anders gelöst - etwas komplizierter :)

Nochmals die Frage: Was bedeutet $admin->... ?

lg
Hansi

Offline jacobi22

  • Posts: 5891
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Datenbank: SQL-Update und Fehlermeldung
« Reply #5 on: October 13, 2016, 10:00:59 AM »
Quote
Was bedeutet $admin->... ?

ruft eine Unterfunktion der Klasse "admin" auf, in diesem Fall print_error().
Diese Klasse bereitet alles auf, was im Backend an Informationen benötigt wird
- wer bist du?
- wo bist du?, darfst du dort sein?
- hast du Berechtigungen für die geplante Aktion oder aufgerufene Seite ?
usw
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline jacobi22

  • Posts: 5891
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Datenbank: SQL-Update und Fehlermeldung
« Reply #6 on: October 13, 2016, 10:38:06 AM »
noch ein Zusatz:
Quote
danke für die Hilfe - vorallem das mit den Codingstandards. Das habe ich anders gelöst

Problem bei solch privaten "Standards" ist dann immer, das es nicht unbedingt kompatibel ist, mit dem, was da ist oder kommt. Diese Codingstandards kommen ja nicht von WB, um z.b. User zu ärgern (ja, auch diese Vorwürfe gab es hier schon) - sie werden weltweit festgelegt, z.b. von der PHP-Group, MYSQL, W3C usw

Obiger Code könnte z.b. Probleme machen, wenn Mysql im Strict-Mode läuft, dieser erwartet die Einfassung von Tabellen- und Feldnamen in Backthicks. Strict wird sicher irgendwann mal Standard bei der Mysql-Einstellung und dann wirds lustig  :roll:
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline hansis100

  • Posts: 85
Re: Datenbank: SQL-Update und Fehlermeldung
« Reply #7 on: October 13, 2016, 04:51:45 PM »
Quote
Was bedeutet $admin->... ?

ruft eine Unterfunktion der Klasse "admin" auf, in diesem Fall print_error().
Diese Klasse bereitet alles auf, was im Backend an Informationen benötigt wird
- wer bist du?
- wo bist du?, darfst du dort sein?
- hast du Berechtigungen für die geplante Aktion oder aufgerufene Seite ?
usw

danke für die Hilfe.