Mit der kommenden Version 5.2 von LPS wird es erstmals möglich sein, Datensätze in eine Web-Datenbank zu schreiben, abzugleichen uvm..
Im Rahmen eines kleinen, mehrteiligen Tutorials werde ich die einzelnen, dafür notwendigen Konfigurationsschritte, erklären und damit auch die Wartezeit auf LPS 5.2.0.0 etwas verkürzen.
Den ersten Teil des Tutorials finden Sie hier.
Den zweiten Teil des Tutorials finden Sie hier.
Teil 3 – Die Kommunikation
Wie in Teil 1 des Tutorials erwähnt, werden für die Kommunikation zwischen Web-Datenbank und LPS ein paar php-Dateien benötigt.
Der Parameter LastConnectURL in der Datei Webconfig.xml weist LPS den Weg in das entsprechende Verzeichnis auf dem Webserver.
Die nachfolgenden Beispieldateien zeigen auf, wie eine einfache Kommunikation zwischen LPS und Web-Datenbank realisiert werden kann.
Das Herzstück – die Verbindung zur Datenbank
Diese Datei kann nach Belieben benannt werden, in meinem Beispiel nenne ich sie LPSConfig.php.
In dieser Datei werden die Zugangsdaten zur MySQL-Datenbank hinterlegt. Alle anderen php-Dateien binden die LPSConfig.php dann ein.
<?php
define("DB_HOST", "localhost");
define("DB_USER", "Datenbankbenutzer");
define("DB_PASSWORD", "PasswortFuerDieDatenbank");
define("DB_DATABASE", "DatenbankName");
?>
Skript 1 – get_db.php – Anforderung eines Datensatzes
Diese, sowie alle nachfolgenden Dateien, müssen – zumindest Stand heute – noch zwingend so genannt werden.
Der Tabellenname im SQL-Statement
SELECT Url,Username,Password,Anmerkungen,Bezeichnung from lps_Beispieltabelle where...
muss natürlich ggf. angepasst werden.
<?php
require_once 'LPSConfig.php';
$connection = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE) or die('Unable to Connect');
if(isset($_POST['id']))
{
mysqli_set_charset($connection, 'utf8');
mysqli_character_set_name ($connection, 'utf8');
$id = htmlspecialchars($_POST['id']);
$sql = "SELECT Url,Username,Password,Anmerkungen,Bezeichnung from lps_Beispieltabelle where Id='".$id."'";
$result = mysqli_query($connection,$sql);
$row = mysqli_fetch_array($result, MYSQL_ASSOC);
echo $row['Url'].",". $row['Username'].",". $row['Password'].",". $row['Anmerkungen'].",". $row['Bezeichnung'];
}
?>
Skript 2 – check_db.php – Prüfung auf Änderungen
<?php
require_once 'LPSConfig.php';
$connection = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE) or die('Unable to Connect');
if(isset($_POST['id']))
{
mysqli_set_charset($connection, 'utf8');
mysqli_character_set_name ($connection, 'utf8');
$id = htmlspecialchars($_POST['id']);
$quelle = htmlspecialchars($_POST['source']);
$sql = "SELECT Geaendert,Quelle,DBName from lps_Beispieltabelle where Id='".$id."'";
$result = mysqli_query($connection,$sql);
$row = mysqli_fetch_array($result, MYSQL_ASSOC)
echo $row['Geaendert'].",". $row['Quelle'].",". $row['DBName'];
}
?>
Skript 3 – check_db2.php – Prüfung auf Änderungen, Rückgabe ID
<?php
require_once 'LPSConfig.php';
$connection = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE) or die('Unable to Connect');
mysqli_set_charset($connection, 'utf8');
mysqli_character_set_name ($connection, 'utf8');
$id = htmlspecialchars($_POST['id']);
$quelle = htmlspecialchars($_POST['source']);
$sql = "SELECT Id,Geaendert,Quelle,DBName from lps_Beispieltabelle";
$result = mysqli_query($connection,$sql);
while($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
echo $row['Id'].",";
}
?>
Skript 4 – insert_db.php – Datensatz in Web-Datenbank anlegen oder aktualisieren, Rückmeldung ob erfolgreich
<?php
require_once 'LPSConfig.php';
$con = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE) or die('Unable to Connect');
if(!$con) {
die("connection object not created: ".mysqli_error($con));
}
else {
$id = htmlspecialchars($_POST['id']);
$url = htmlspecialchars($_POST['url']);
$username = htmlspecialchars($_POST['username']);
$password = htmlspecialchars($_POST['password']);
$anmerkungen = htmlspecialchars($_POST['anmerkungen']);
$bezeichnung = htmlspecialchars($_POST['bezeichnung']);
$quelle = htmlspecialchars($_POST['quelle']);
$dbname = htmlspecialchars($_POST['dbname']);
if($bezeichnung == '') {
echo "No Bezeichnung";
}
else{
$sql = "INSERT INTO lps_Beispieltabelle(Id, Bezeichnung, Url, Username, Password, Anmerkungen, Quelle, DBName) VALUES ('".$id."','".$bezeichnung."','".$url."','".$username."','".$password."','".$anmerkungen."','".$quelle."','".$dbname."') ON DUPLICATE KEY UPDATE Bezeichnung='".$bezeichnung."', Url='".$url."',Username='".$username."',Password='".$password."',Anmerkungen='".$anmerkungen."',Quelle='".$quelle."',DBName='".$dbname."'";
if(mysqli_query($con,$sql)) {
echo "Success";
}
else{
echo "Problem inserting data!" .mysqli_error($con);
}
}
mysqli_close($con);
}
?>
Mehr braucht es erst einmal nicht.
Wichtig ist eigentlich nur, dass für die Rückgabe der Werte an LPS auch die entsprechenden Spalten genutzt werden.
Dem Abgleich der Daten sollte damit jetzt nichts mehr im Wege stehen!
[twoclick_buttons]