Hallo!
Habe nun schon längere Zeit nach einer Ursache gesucht, komme aber leider nicht weiter. Vielleicht hat ja jemand von Euch einen guten Tipp?!
Über ein PHP-Script lese ich die Verzeichnisstruktur eines Ordners aus.
Weiterführend lese ich bei den darin befindlichen Bild-Dateien die EXIF-Daten ein, damit ich die gesammelten Informationen in eine MySQL-Datenbank schreiben kann.
function scan_images($dir){
$dh = new DirectoryIterator($dir);
// Directory object
foreach ($dh as $item) {
if (!$item->isDot()) {
if ($item->isDir()) {
scan_images("$dir/$item");
} else {
$pic = $dir ."/". $item->getFilename();
unset($exif,$sql);
$exif = exif_read_data($pic);
$imgLocation = get_image_location($pic);
$im_DateTime = substr($exif[DateTime],0,4)."-". substr($exif[DateTime],5,2)."-". substr($exif[DateTime],8);
$im_FileName = $exif[FileName];
$im_FileSize = $exif[FileSize];
$im_GPSLatitude = $imgLocation['latitude'];
$im_GPSLongitude = $imgLocation['longitude'];
$im_GPSAltitude = 0;
$sql = "REPLACE INTO gallery ";
$sql .= "(DateTime,FileName,FileSize,GPSLatitude,GPSLongitude,GPSAltitude,Description) VALUES ";
$sql .= "('$im_DateTime','$im_FileName','$im_FileSize','$im_GPSLatitude','$im_GPSLongitude','$im_GPSAltitude', '$im_FileName')";
echo "<br>".$sql;
$res = mysqli_query($mysqli ,$sql);
// echo "RES :".$res;
// echo "ERR :".mysqli_error($mysqli);
}
}
}
}
scan_images("gallery");
Alles anzeigen
Das "echo" aus dem Script liefert m. E. auch passende Werte (habe es mal auf 3 Einträge reduziert):
REPLACE INTO gallery (DateTime,FileName,FileSize,GPSLatitude,GPSLongitude,GPSAltitude,Description) VALUES ('2018-02-11 11:49:21','dji_0011.jpg','606967','49.070833333333','8.6941666666667','0', 'dji_0011.jpg')
REPLACE INTO gallery (DateTime,FileName,FileSize,GPSLatitude,GPSLongitude,GPSAltitude,Description) VALUES ('2018-02-11 11:48:54','dji_0008.jpg','791986','49.070833333333','8.6941666666667','0', 'dji_0008.jpg')
REPLACE INTO gallery (DateTime,FileName,FileSize,GPSLatitude,GPSLongitude,GPSAltitude,Description) VALUES ('2018-02-11 11:51:48','dji_0018.jpg','1223510','49.070833333333','8.6938888888889','0', 'dji_0018.jpg')
Leider funktioniert das Schreiben in die Datenbank per PHP nicht, aber wenn ich jede Zeile des ausgespuckten SQL-Befehls _einzeln_ in die SQL-Konsole phpMyAdmin eingebe, dann werden die Daten in die Tabelle eingetragen.
Die Tabelle "gallery" habe ich - bis auf den ersten Wert, weil ich ein "Primary Key" setzen will - der Einfachheit halber erst einmal mit dem Datentyp "text" versehen.
db.jpg
Die Verbindung zur Datenbank kommt via $mysqli = mysqli_connect($db_host,$db_user,$db_pass,$db_data); zustande, das habe ich geprüft.
Habe auch schon aus dem REPLACE INTO ein INSERT INTO gemacht - ohne Wirkung. Auch das $res und das mysqli_error($mysqli); geben keine Informationen aus - das macht mich besonders stutzig.
Hat jemand noch eine Idee, was ich falsch mache?
Danke schonmal!
Hendrik