Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

Für Entwickler und Tüfftler
zunshiner
Offline
Beiträge: 98
Registriert: 08 Dez 2020, 14:33
Hat sich bedankt: 5 mal
Danksagung erhalten: 10 mal

Re: Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

#11

Beitrag von zunshiner »

PHP-Version 7.4
habs jetzt mal auf 8.0 hochgesetzt, aber keine Änderung im Ergebnis

Konsole versuche ich morgen
zunshiner
Offline
Beiträge: 98
Registriert: 08 Dez 2020, 14:33
Hat sich bedankt: 5 mal
Danksagung erhalten: 10 mal

Re: Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

#12

Beitrag von zunshiner »

Hat jetzt doch einige Tage gedauert, bis ich wieder dazu gekommen bin.
Auf der Konsole läuft das Programm jetzt vereinfacht und ich kann auch Werte in eine Datenbanktabelle schreiben.
Wenn ich das Programm dann anschließend auf meinem Server laufen lasse, bekomme ich den Fehler

Access denied for user 'db1234'@'localhost' to database 'db1234'
User und Datenbank heissen natürlich anders.
Ich habe Usernamen, Passwort und Datenbankname mehrfach geprüft und denk ich kann ausschließen dass die falsch sind.

Hat jemand eine Idee wie ich weitersuchen kann?


So sieht der Code aus der bei mir lokal mit XAMPP funktioniert:

Code: Alles auswählen

<?php

$server = 'localhost';
$user   = 'root';
$pass   = '';
$db     = 'localdatabase';
$table  = 'test';

// create connection
$db     = new mysqli($server, $user, $pass, $db);
// check connection
if($db-> connect_error) {
	die("connection failed; ". $db-> connect_error);
}

date_default_timezone_set("Europe/Berlin");
$timestamp = time();
$year     = date("Y",$timestamp);
$month    = date("n",$timestamp);
$day      = date("d",$timestamp);
$wday     = date("w",$timestamp);
$hour = date("H",$timestamp);
$min  = date("i",$timestamp);
$sec  = date("s",$timestamp);
echo $hour. ":". $min. ":". $sec;


#Datumswerte probehalber ausgeben
echo "Tag ". $day;
echo "Monat ". $month;
echo "Jahr ". $year;
echo "Wochentag ". $wday;
echo "Stunde ". $hour;

#In die localhost db testeinträge schreiben
$sql = "INSERT INTO $table (HOUR, MIN, SEC) VALUES ( '$hour', '$min', '$sec')";
if($db->query($sql)===TRUE) {
  echo "New Record created successfully";
}
else {
  echo "Error: " . $sql. "<br>" . $db->error;
}
$db->close();

Den ganzen Part mit dem ermitteln der Daten aus der JSON-File habe ich erst einmal rausgelassen, mir würde es für den Moment schon reichen, wenn ich eine Verbindung zustande bringen würde.

Internetsuche hierzu biete extrem viel von dem ich nicht wirklich etwas verstehe.
zunshiner
Offline
Beiträge: 98
Registriert: 08 Dez 2020, 14:33
Hat sich bedankt: 5 mal
Danksagung erhalten: 10 mal

Re: Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

#13

Beitrag von zunshiner »

Neue Datenbank angelegt und mit der probiert - das klappt jetzt.
Nächster Schritt JSON-Data abrufen - Variablen füllen und in Datenbank schreiben.
zunshiner
Offline
Beiträge: 98
Registriert: 08 Dez 2020, 14:33
Hat sich bedankt: 5 mal
Danksagung erhalten: 10 mal

Re: Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

#14

Beitrag von zunshiner »

zu früh gefreut - wenn ich meine PHP-Datei jetzt mit Verbindung zur Datenbank im Web aufrufe, wird ein Satz in der Datenbanktabelle erzeugt. Den nächsten Satz kann ich aber erst wieder 2 Minuten später erzeugen.

Prinzipiell würde das ja locker reichen, aber warum ist das so ?
zinz
Offline
Beiträge: 20
Registriert: 09 Mai 2022, 21:44
Hat sich bedankt: 2 mal
Danksagung erhalten: 5 mal

Re: Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

#15

Beitrag von zinz »

zunshiner hat geschrieben: 08 Jul 2022, 17:27 zu früh gefreut - wenn ich meine PHP-Datei jetzt mit Verbindung zur Datenbank im Web aufrufe, wird ein Satz in der Datenbanktabelle erzeugt. Den nächsten Satz kann ich aber erst wieder 2 Minuten später erzeugen.

Prinzipiell würde das ja locker reichen, aber warum ist das so ?
Habe zwar von php überhaupt keine Ahnung, aber kannst du dich da entweder mit nem Debugger dranhängen oder einfacher ein paar log Zeilen mit Zeitszempel erzeugen, damit du weißt welcher Schritt wie lange dauert und auf was dein programm wartet?
zunshiner
Offline
Beiträge: 98
Registriert: 08 Dez 2020, 14:33
Hat sich bedankt: 5 mal
Danksagung erhalten: 10 mal

Re: Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

#16

Beitrag von zunshiner »

zinz hat geschrieben: 08 Jul 2022, 18:18 ...kannst du dich da entweder mit nem Debugger dranhängen ...
dazu kenne ich keine Möglichkeit.
zunshiner
Offline
Beiträge: 98
Registriert: 08 Dez 2020, 14:33
Hat sich bedankt: 5 mal
Danksagung erhalten: 10 mal

Re: Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

#17

Beitrag von zunshiner »

leider so viele Sachen die ich nicht verstehe...
Auf meiner Webseite (Joomla 4 mit Erweiterung "Sourcerer") kann ich in den einzelnen Artikel direkt PHP-Code schreiben.

Diese 3 Zeilen dort in den Artikel eingebaut, erlauben mir später jeden einzelnen Wert abzugreifen:

Code: Alles auswählen

$url = "https://api.ecowitt.net/api/v3/device/real_time?application_key=XXXXX&api_key=XXXXX&mac=XX:XX:XX:XX:XX:XX&call_back=all&temp_unitid=1&pressure_unitid=3&wind_speed_unitid=7&rainfall_unitid=12&solar_radiation_unitid=16"; 
$json = file_get_contents($url); 
$json_data = json_decode($json, true);
Wenn ich die gleichen 3 Zeilen aber in ein PHP-Script einbaue, dass ich aufrufe, passiert dadurch überhaupt nichts.
Es gibt scheinbar auch keinerlei weitere Verarbeitung und keine Fehlermeldung.
WernerWetter
Offline
Beiträge: 79
Registriert: 07 Dez 2020, 18:19
Wohnort: Ulm / Grimmelfingen
Hat sich bedankt: 10 mal
Danksagung erhalten: 18 mal

Re: Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

#18

Beitrag von WernerWetter »

hallo,

starte das script doch mal auf der Kommandozeile:

Code: Alles auswählen

php phpskript.php
zunshiner
Offline
Beiträge: 98
Registriert: 08 Dez 2020, 14:33
Hat sich bedankt: 5 mal
Danksagung erhalten: 10 mal

Re: Mit PHP einen Eintrag in einer MYSQL-Datenbank erzeugen

#19

Beitrag von zunshiner »

Jetzt ist Grad auch noch die SD Karte vom Raspberry abgeraucht, und das am Samstag Abend :D
Also dann nächste Woche wieder alles von 0
Antworten