Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.01.2018, 01:49
geThiGh geThiGh ist offline
Engagierter Besucher
 
Registriert seit: 10.09.2008
Beiträge: 138
Standard Daten auslesen und in DB eintragen

Hallo!

Ich lese mit Hilfe von Json eine Adresse aus - diese möchte ich anschließend in eine Datenbank abspeichern - lt. Ausgabe erkennt er alle Daten aber in der Datenbank wurde nichts eingetragen.

PHP Quellcode:
$sql = "INSERT INTO ALARM (alarmId, alarmDate, endDate, authorName, alarmText, coordinates) values ";
   
        $valuesArr = array();
        foreach($einsatz['alarms'] as $row){
   
            $alarmId = mysqli_real_escape_string($conn, $row['alarmId'] );
            $alarmDate = mysqli_real_escape_string($conn, $row['alarmDate'] );
            $endDate = mysqli_real_escape_string($conn, $row['endDate'] );
            $authorName = mysqli_real_escape_string($conn, $row['authorName'] );
            $alarmText = mysqli_real_escape_string($conn, $row['alarmText'] );
            $coordinates = mysqli_real_escape_string($conn, $row['coordinates'] );
   
            $valuesArr[] = "('$alarmId', '$alarmDate', '$endDate', '$authorName', '$alarmText', '$coordinates')";
        }
   
        $sql .= implode(',', $valuesArr);
       
        echo $sql;
   }


INSERT INTO ALARM (alarmId, alarmDate, endDate, authorName, alarmText, coordinates) values ('d8d5c9d5', '2018-01-11T18:25:45.534Z', '2018-01-11T18:40:45.534Z', 'LSA', 'Testalarm, Info:Schulstraße 88 um 11.01/18:25', '')

Kann mir hier jemand vl. weiterhelfen?

LG

Geändert von geThiGh (14.01.2018 um 01:54 Uhr) Grund: Änderung
Mit Zitat antworten
  #2  
Alt 14.01.2018, 02:03
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.071
Standard AW: Daten auslesen und in DB eintragen

Standardantwort/FAQ:
MySQL Fehlermeldungen werden normalerweise nicht angezeigt. Um sie trotzdem anzuzeigen, musst du eine Fehlerabfrage starten. Je nach eingesetzter MySQL-Zugriffsschicht geht dies mit einer der folgenden Funktionen:

mysqli: mysqli_error()
mysql (veraltet): mysql_error()
PDO: PDO::errorInfo(), bzw. PDOStatement::errorInfo()

Das kann dann z.B. so aussehen:
PHP Quellcode:
$sql = 'SELECT spalte FROM tabelle';
mysqli_query($db, $sql)
  or trigger_error('Fehler in Query "' . $sql . '". Fehlermeldung: ' . mysqli_error($db), E_USER_ERROR);
Schlägt eine Query jetzt fehl, so sorgt die Zeile mit trigger_error() und mysqli_error() dafür, dass wir sowohl die Query einmal genau so zu Gesicht bekommen, wie sie an die Datenbank geschickt wurde, als auch, dass wir die Fehlermeldung der Datenbank angezeigt bekommen. Durch den Parameter E_USER_ERROR wird die weitere Verarbeitung des Skriptes beendet.

Wenn Update- oder Replace-Abfragen fehl schlagen, ohne eine Fehlermeldung zu produzieren, dann ist oft auch der Rückgabewert der Funktionen mysqli_info oder mysql_info (veraltet) bei der Fehlersuche hilfreich.

Wurde der Fehler gefunden, behoben und die Seite geht in den Produktiveinsatz, so gilt es alle mysqli_error() wieder zu entfernen oder das error_reporting so einzustellen, dass Fehlermeldungen der Kategorie E_USER_ERROR nicht angezeigt werden.

Hinweise zum korrekten Debuggen findest du auch im phpforum.de Wiki: Debuggen
Mit Zitat antworten
  #3  
Alt 14.01.2018, 02:08
geThiGh geThiGh ist offline
Engagierter Besucher
 
Registriert seit: 10.09.2008
Beiträge: 138
Standard AW: Daten auslesen und in DB eintragen

Dankesehr - Fehlermeldung

Fatal error: Fehler in Query "INSERT INTO ALARM (alarmId, alarmDate, endDate, authorName, alarmText, coordinates) values ". Fehlermeldung: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in /xxxxxx/test.php on line 72

Zeile 72 or trigger_error('Fehler in Query "' . $sql . '". Fehlermeldung: ' . mysqli_error($conn), E_USER_ERROR);

Lg
Mit Zitat antworten
  #4  
Alt 14.01.2018, 20:29
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.071
Standard AW: Daten auslesen und in DB eintragen

Naja, schau nach was in $sql drin steht.
Mit Zitat antworten
  #5  
Alt 14.01.2018, 20:39
geThiGh geThiGh ist offline
Engagierter Besucher
 
Registriert seit: 10.09.2008
Beiträge: 138
Standard AW: Daten auslesen und in DB eintragen

Hallo!

Ich habe den Code jetzt sauber hinbekommen - er lest alles korrekt aus und zeigt auch die Ergebnisse auf - Trotzdem wird nichts in die Datenbank geschrieben. Ich komme leider nicht mehr weiter :/

PHP Quellcode:
} else {
  echo "INAKTIV";
        $sql = "INSERT INTO ALARM (alarmId, alarmDate, endDate, authorName, alarmText, coordinates) values ";

 $valuesArr = array();
        foreach($einsatz['alarms'] as $row){
   
            $alarmId = mysqli_real_escape_string($conn, $row['alarmId'] );
            $alarmDate = mysqli_real_escape_string($conn, $row['alarmDate'] );
            $endDate = mysqli_real_escape_string($conn, $row['endDate'] );
            $authorName = mysqli_real_escape_string($conn, $row['authorName'] );
            $alarmText = mysqli_real_escape_string($conn, $row['alarmText'] );
            $coordinates = mysqli_real_escape_string($conn, $row['coordinates'] );
   
            $valuesArr[] = "('$alarmId', '$alarmDate', '$endDate', '$authorName', '$alarmText', '$coordinates')";
        }
   
echo implode(", ", $valuesArr);    

    error_reporting(E_ALL ^ E_DEPRECATED);}


Lg
Mit Zitat antworten
  #6  
Alt 14.01.2018, 21:52
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.071
Standard AW: Daten auslesen und in DB eintragen

In dem Code wird ja auch nirgendwo in die Datenbank geschrieben.
Mit Zitat antworten
  #7  
Alt 14.01.2018, 22:08
geThiGh geThiGh ist offline
Engagierter Besucher
 
Registriert seit: 10.09.2008
Beiträge: 138
Standard AW: Daten auslesen und in DB eintragen

Zitat:
Zitat von hellbringer Beitrag anzeigen
In dem Code wird ja auch nirgendwo in die Datenbank geschrieben.
PHP Quellcode:
$sql = "INSERT INTO ALARM (alarmId, alarmDate, endDate, authorName, alarmText, coordinates) values ";


Lg
Mit Zitat antworten
  #8  
Alt 14.01.2018, 22:28
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.071
Standard AW: Daten auslesen und in DB eintragen

Zitat:
Zitat von geThiGh Beitrag anzeigen
PHP Quellcode:
$sql = "INSERT INTO ALARM (alarmId, alarmDate, endDate, authorName, alarmText, coordinates) values ";
Das ist eine Variablenzuweisung und keine Datenbankabfrage.
Mit Zitat antworten
  #9  
Alt 14.01.2018, 23:57
geThiGh geThiGh ist offline
Engagierter Besucher
 
Registriert seit: 10.09.2008
Beiträge: 138
Standard AW: Daten auslesen und in DB eintragen

Zitat:
Zitat von hellbringer Beitrag anzeigen
Das ist eine Variablenzuweisung und keine Datenbankabfrage.
Dankesehr!

Lg
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten mit php in mysql-db eintragen urzenheimer Datenbanken 9 20.03.2009 17:53
Daten in XML eintragen? hanfmassel PHP 10 13.03.2008 18:34
Daten eintragen Benni Datenbanken 2 06.01.2003 21:24
Daten eintragen...? Oliver Albers PHP 0 01.01.1970 01:00
Daten eintragen...? HArti Datenbanken 2 01.01.1970 01:00


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:36 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC