Seite 2 von 2

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

Verfasst: 27 Jun 2022, 22:56
von zunshiner
PHP-Version 7.4
habs jetzt mal auf 8.0 hochgesetzt, aber keine Änderung im Ergebnis

Konsole versuche ich morgen

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

Verfasst: 07 Jul 2022, 21:21
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.

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

Verfasst: 08 Jul 2022, 09:29
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.

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

Verfasst: 08 Jul 2022, 17:27
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 ?

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

Verfasst: 08 Jul 2022, 18:18
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?

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

Verfasst: 09 Jul 2022, 11:55
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.

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

Verfasst: 09 Jul 2022, 12:12
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.

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

Verfasst: 09 Jul 2022, 18:31
von WernerWetter
hallo,

starte das script doch mal auf der Kommandozeile:

Code: Alles auswählen

php phpskript.php

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

Verfasst: 09 Jul 2022, 19:06
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