Folgendes Problem:
Ich möchte eine Datenbank nutzen, in der ich die Verbrauchsdaten meines Hauses notiere. Dazu gebe ich die Zählerstände (Gas, Wasser, Strom etc) in eine Datenbank ein. Um die täglichen Verbräuche zu ermitteln, ziehe ich den aktuellen Zählerstand vom Stand am Vortag ab. Das geschieht durch eine mysql-Abfrage:
UPDATE energie AS A
INNER JOIN
(
SELECT id,
v_gas, gas - LAG(gas) OVER (ORDER BY id) AS gas_verbr,
v_wasser, wasser - LAG(wasser) OVER (ORDER BY id) AS wasser_verbr,
v_netz, netz - LAG(netz) OVER (ORDER BY id) AS netz_verbr,
v_pv, pv - LAG(pv) OVER (ORDER BY id) AS pv_verbr
FROM energie
GROUP BY id
) AS B
ON A.id = B.id
SET A.v_gas = B.gas_verbr,
A.v_wasser = B.wasser_verbr,
A.v_netz = B.netz_verbr,
A.v_pv = B.pv_verbr
Mit dem Server auf dem PC (XAMPP) funktioniert das hervorragend.
Auf der Synology-Station erhalte ich jetzt eine immense Fehlermeldung:
Fatal error: Uncaught mysqli_sql_exception: Out of range value for column 'v_gas' at row 1 in /volume1/web/energie/verbr_akt01.php on line 23mysqli_sql_exception: Out of range value for column 'v_gas' at row 1 in /volume1/web/energie/verbr_akt01.php on line 23Call Stack: 0.0003 405872 1. {main}() /volume1/web/energie/verbr_akt00.php:0 0.0058 483432 2. include('/volume1/web/energie/verbr_akt01.php') /volume1/web/energie/verbr_akt00.php:46 0.0079 508520 3. mysqli_query($mysql = class mysqli { public string|int $affected_rows = *uninitialized*; public string $client_info = *uninitialized*; public int $client_version = *uninitialized*; public int $connect_errno = *uninitialized*; public ?string $connect_error = *uninitialized*; public int $errno = *uninitialized*; public string $error = *uninitialized*; public array $error_list = *uninitialized*; public int $field_count = *uninitialized*; public string $host_info = *uninitialized*; public ?string $info = *uninitialized*; public string|int $insert_id = *uninitialized*; public string $server_info = *uninitialized*; public int $server_version = *uninitialized*; public string $sqlstate = *uninitialized*; public int $protocol_version = *uninitialized*; public int $thread_id = *uninitialized*; public int $warning_count = *uninitialized* }, $query = 'UPDATE energie\r\n\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv_gas, (gas - LAG(gas) OVER (ORDER BY id)) AS Gas_verbr,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv_wasser, (wasser - LAG(wasser) OVER (ORDER BY id)) AS wasser_verbr,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv_netz, (netz - LAG(netz) OVER (ORDER BY id)) AS netz_verbr,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv_pv, (pv - LAG(pv) OVER (ORDER BY id)) AS pv_verbr\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM energie \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t) AS B\r\n\t\t\t\t\t\t\t\t\t\t\t\tON energie.id = B'...) /volume1/web/energie/verbr_akt01.php:23
Da es sich m.E. nicht um einen Fehler in der Abfrage handelt, kann es sich nur um eine andere Einstellung im Skript auf der Station handeln. Und da hört mein Wissen auf. Hilfe. Danke
Ich möchte eine Datenbank nutzen, in der ich die Verbrauchsdaten meines Hauses notiere. Dazu gebe ich die Zählerstände (Gas, Wasser, Strom etc) in eine Datenbank ein. Um die täglichen Verbräuche zu ermitteln, ziehe ich den aktuellen Zählerstand vom Stand am Vortag ab. Das geschieht durch eine mysql-Abfrage:
UPDATE energie AS A
INNER JOIN
(
SELECT id,
v_gas, gas - LAG(gas) OVER (ORDER BY id) AS gas_verbr,
v_wasser, wasser - LAG(wasser) OVER (ORDER BY id) AS wasser_verbr,
v_netz, netz - LAG(netz) OVER (ORDER BY id) AS netz_verbr,
v_pv, pv - LAG(pv) OVER (ORDER BY id) AS pv_verbr
FROM energie
GROUP BY id
) AS B
ON A.id = B.id
SET A.v_gas = B.gas_verbr,
A.v_wasser = B.wasser_verbr,
A.v_netz = B.netz_verbr,
A.v_pv = B.pv_verbr
Mit dem Server auf dem PC (XAMPP) funktioniert das hervorragend.
Auf der Synology-Station erhalte ich jetzt eine immense Fehlermeldung:
Fatal error: Uncaught mysqli_sql_exception: Out of range value for column 'v_gas' at row 1 in /volume1/web/energie/verbr_akt01.php on line 23mysqli_sql_exception: Out of range value for column 'v_gas' at row 1 in /volume1/web/energie/verbr_akt01.php on line 23Call Stack: 0.0003 405872 1. {main}() /volume1/web/energie/verbr_akt00.php:0 0.0058 483432 2. include('/volume1/web/energie/verbr_akt01.php') /volume1/web/energie/verbr_akt00.php:46 0.0079 508520 3. mysqli_query($mysql = class mysqli { public string|int $affected_rows = *uninitialized*; public string $client_info = *uninitialized*; public int $client_version = *uninitialized*; public int $connect_errno = *uninitialized*; public ?string $connect_error = *uninitialized*; public int $errno = *uninitialized*; public string $error = *uninitialized*; public array $error_list = *uninitialized*; public int $field_count = *uninitialized*; public string $host_info = *uninitialized*; public ?string $info = *uninitialized*; public string|int $insert_id = *uninitialized*; public string $server_info = *uninitialized*; public int $server_version = *uninitialized*; public string $sqlstate = *uninitialized*; public int $protocol_version = *uninitialized*; public int $thread_id = *uninitialized*; public int $warning_count = *uninitialized* }, $query = 'UPDATE energie\r\n\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv_gas, (gas - LAG(gas) OVER (ORDER BY id)) AS Gas_verbr,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv_wasser, (wasser - LAG(wasser) OVER (ORDER BY id)) AS wasser_verbr,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv_netz, (netz - LAG(netz) OVER (ORDER BY id)) AS netz_verbr,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv_pv, (pv - LAG(pv) OVER (ORDER BY id)) AS pv_verbr\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM energie \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t) AS B\r\n\t\t\t\t\t\t\t\t\t\t\t\tON energie.id = B'...) /volume1/web/energie/verbr_akt01.php:23
Da es sich m.E. nicht um einen Fehler in der Abfrage handelt, kann es sich nur um eine andere Einstellung im Skript auf der Station handeln. Und da hört mein Wissen auf. Hilfe. Danke