"Herausforderungen" nach Update auf 2.5

würde ich versuchen, wenn das auch nicht hilft, dann hilt nur noch paresy :eek:

Gut, daß es nur zwei waren … :o

Hallo Leute,

vielen vielen Dank!!

Die Daten sind wieder da!!

Keine Fehlermeldung!!!:):slight_smile:

Bleibt dann wohl nur noch die MS-SQL-Anbindung offen (und die FritzBox-Skripte)…

Joachim

Viel Spass beim Lesen ;), Rainer hat da schon vorgearbeitet.

Hallo Joachim,

für die SQL Server Anbindung benutze ich die php_sqlsrv.dll da die php_mssql.dll nicht mehr weiter unterstützt wird. Eine Version die mit IPS 2.5 arbeitet habe ich angehängt.
Allerdings müßen die Befehle angepaßt werden da sie sich von mssql zu sqlsrv geändert haben.
Docu: SQL Server Driver for PHP Documentation

Peter

php_sqlsrv.zip (53.8 KB)

Hallo Peter,

erst einmal vielen Dank für Deine Antwort!

Ich hoffe ich bekomme die Umstellung mit meiner eher bescheidenen Kenntnissen hin…

Joachim

Hallo Peter,

ich habe da so meine Probleme…
Was hat es mit dem Laden des SQL Server-Treibers für PHP auf sich? Muss dass auch noch in IPS oder sonstwo gemacht werden?

Hier ist mal mein Versuch des Verbindungsaufbaus (weiter unten ist der „alte Code“):

<?php

$serverName = "HAP-PC\SQLEXPRESS";
$connectionOptions = array("Database"=>"HAP_DB", "Password"=>"", "User"=>"HAP-PC\HAP");

$conn = sqlsrv_connect( $serverName, $connectionOptions);
if( $conn === false )
   {
	die( "Verbindung zum SQL_Server Fehlgeschlagen " .  $serverName );
	}
else
	{
	echo "Verbindungsaufbau erfolgreich " .  $serverName;
	}


return;

 //Skript, um die Daten im für Langzeitbetrachtungen in der Datenbank zu sichern
$myServer = "HAP-PC\SQLEXPRESS"; // IP Ändern
$myUser = "HAP-PC\HAP";
$myPass = "";
$myDB = "HAP_DB"; // Datenbank
$myTable = "dat_Temperatur"; // Tabelle

// connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass) or die("Verbindung zum SQL_Server Fehlgeschlagen" .  $myServer);

// select a database to work with
$selected = mssql_select_db($myDB, $dbhandle) or die("Kann Datenbank nicht öffnen" . $myDB);

echo "Verbindung hergestellt zu " . $myDB . " MSSql auf " . $myServer;

$Seriennummer = TMEX_GetDevice(23960 /*[Temperaturen\Außentemperatur]*/ );
$timestamp = date("d.m.Y H:i:s",  time());
$Temperatur = GetValueFloat(21257 /*[Temperaturen\Außentemperatur\Temperatur]*/ );

$sql = "insert into " . $myTable . " (Seriennummer, Timestamp, Temperatur) values ('$Seriennummer', '$timestamp', $Temperatur)"  ;
$ergebnis = mssql_query ($sql,$dbhandle) ;

// close the connection
mssql_close($dbhandle);
echo " - Verbindung getrennt";
?>

Muss ich evtuell noch weitere Parameter übergeben? Oder noch etwas installieren?

Joachim

Hallo Joachim,

Du musst alle alten Befehle austauschen. In dem Link ist doch ein schönes Beispiel gegeben.

Hallo Joachim,

unten ein einfaches Beispiel um ein Datum/Zeit und Temperatur in die Datenbank zu schreiben. Ich erinnere das ich Probleme mit dem Servernamen hatte und deshalb die IP direkt angegeben habe.

<?
$connectionInfo = array( "Database"=>"HomeDataS");
$conn = sqlsrv_connect( '192.168.181.4', $connectionInfo);

$TempWohn=GetValueFloat(32216 /*[Wohnzimmer\SensorWohnzimmer\TemperaturWohnzimmer]*/);

$tsql = "INSERT INTO TempWohn VALUES(GETDATE(), $TempWohn)";
$stmt = sqlsrv_query($conn,$tsql);

sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

Peter

Hallo Peter,

vielen Dank für das Beispiel. Leider scheitere ich schon am Verbindungsaufbau…:frowning:
Die Fehlermeldung: „This extension requires either the Microsoft SQL Server 2008 Native Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native Client ODBC Driver to communicate with SQL Server. Neither of those ODBC Drivers are currently installed. Access the following URL to download the Microsoft SQL Server 2008 R2 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712

Ich habe dort selbstverständlich unter dem Link geschaut. Dort steht (soweit ich es verstanden habe), dass etwas zusätzliches im PHP-Ordner installiert werden muss.
Wie hast Du das gemacht?

Joachim

Die php_pdo_odbc.dll hast Du im ext Ordner.

Hallo Joachim,

wenn der SQL Server auf einem anderen Rechner läuft, muß auf dem IPS Rechner der „SQL Server Native Client“ installiert sein.

Dieser ist Teil des SQL Server Feature Pack:
Detail Seite Microsoft® SQL Server® 2008 R2 Feature Pack

Dies ist eine eigenständige Installation und hat nix mit PHP zu tun. Ich vermute die php_sqlsvr.dll benutzt Treiber die mit dem Native Client installiert werden.

Peter

Hallo Peter,

Der MS-SQL-Server läuft auf dem gleichen Rechner wie IPS auch.
Ich habe jetzt schon diverse „Kombinationen“ probiert, aber der Verbindungsaufbau funktioniert leider nicht…:frowning:

Die ganze Geschichte ist auch nicht mehr sooo wichtig, so dass ich mir überlegt habe nicht mehr zu viel Zeit darauf zu verwenden…

Ist gibt leider noch andere „Baustellen“ seit dem Update auf 2.5…:frowning:

Trotzdem vielen Dank für die Hilfe!!

Joachim

Hallo,

ich habe ein System, welches seit 2.0 immer nur migriert wurde und ein Haufen Experimente mitgemacht hat.

Nachdem ich eben auf 2.5 geupdated habe, habe ich WIIPS entfernt, da es seit 2.3 eh nicht so super lief und die Graphen ja mittlerweile schon ganz ansehlich sind.

Allerdings ist beim Prüfen der Log-Datei folgendes aufgefallen:

04.01.2012 15:50:49.455 |     0 | MESSAGE | ScriptEngine         | >Erweiterung: libmysql.dll
04.01.2012 15:50:49.470 |     0 | MESSAGE | ScriptEngine         | >Erweiterung: php_curl.dll
04.01.2012 15:50:49.470 |     0 | MESSAGE | ScriptEngine         | >Erweiterung: php_gd2.dll
04.01.2012 15:50:49.486 |     0 | MESSAGE | ScriptEngine         | >Erweiterung: php_gettext.dll
04.01.2012 15:50:49.486 |     0 | MESSAGE | ScriptEngine         | >Erweiterung: php_mbstring.dll
04.01.2012 15:50:49.501 |     0 | MESSAGE | ScriptEngine         | >Erweiterung: php_mysql.dll
04.01.2012 15:50:49.501 |     0 | MESSAGE | ScriptEngine         | >Erweiterung: php_mysqli.dll
04.01.2012 15:50:49.501 |     0 | MESSAGE | ScriptEngine         | >Erweiterung php_pdo.dll nicht geladen. Version stimmt nicht überein: PHP: 5.4.0, EXT: 5.1.6
04.01.2012 15:50:49.517 |     0 | MESSAGE | ScriptEngine         | >Erweiterung: php_soap.dll
04.01.2012 15:50:49.517 |     0 | MESSAGE | ScriptEngine         | >Erweiterung php_sqlite.dll nicht geladen. Version stimmt nicht überein: PHP: 5.4.0, EXT: 5.3.1

Welche von den DLLs braucht man eigentlich und wofür ? bzw. welche sind total überflüssig ?

2 Fehler sind ja offensichtlich, allerdings bin ich mir nicht sicher ob ich LÖSCHEN oder diese durch aktuelle Versionen ERSETZTEN muss ?

php_pdo.dll ?
php_sqlite.dll ?

Was sollte ich tun ?

Gruss
Björn
:slight_smile:

Die kannst du löschen. Die MySQL Extensions auch, wenn du keinerlei MySQL in deinen Skripten verwendest. Der Rest kann dann bleiben.

paresy