MySQL Verbindung

Hallo zusammen
Für eine aktuelle Anforderung meinerseits möchte ich Zugriff auf einen MySql Server haben. Lokal läuft auf einem QNAP NAS der SQL Dienst. Dieser ist auch so eingestellt, dass er von Außen ansprechbar ist.
Durch viel Suchen bin ich auf die MSQLI_ Befehle gestoßen. Wenn ich allerdings

$mysqli = mysqli_connect("192.168.32.3","user","passwort","networkscanner",3306);

probiere, dann bekomme ich folgende Fehlermeldung

Fatal error:  Uncaught Error: Call to undefined function mysqli_connect() in C:\ProgramData\Symcon\scripts\57045.ips.php:12
Stack trace:
#0 C:\ProgramData\Symcon\scripts\57045.ips.php(27): readxml()
#1 {main}
  thrown in C:\ProgramData\Symcon\scripts\57045.ips.php on line 12

Soweit ich das aus diversen Beiträgen gelesen habe, sollte das aber funktionieren. Sehe hier irgendwie auf der Leitung und würde mich über Rückmeldungen freuen.

Vieleicht kurz was gemacht werden soll. Basis ist eine XML Datei, die ich ich schon erfolgreich in ein Array lese und mir die Werte heraushole, die ich brauche. Das geht schon. Das ganze soll dann in eine SQL rein. Auch in weiterer Folge mit Änderung von Datenstzen und auch die Überprüfung ob ein Datensatz mit einem Key schon vorhanden ist.

Für Windows musst du die PHP Erweiterungen selber runterladen und einrichten:
https://www.symcon.de/service/dokumentation/komponenten/dienst/php/

Um dann IPS Variablen in MySQL zu loggen gibt es etwas fertiges im Modul Store :slight_smile:
Michael

Wenn du unter Windows unterwegs bist, müsstest du dir die PHP Extensions selber installieren.

Dies ist hier erklärt. PHP — IP-Symcon :: Automatisierungssoftware

IP-Symcon 5.5 nutzt übrigens PHP 7.4. Das fehlt in der Liste und werde ich gleich korrigieren.

paresy

Danke. Ich will keine Werte loggen. Ich bin dabei meinen Netzwerkscanner von Ping auf nmap zu erweitern. Das liefert mir ein XML und die einzelnen Geräte möcht ich eine DB schreiben.
Es würde auch sqlite reichen, soweit ich das geshen hab. Der SQL server ist eh overkill. Nur leider hab ich zu sqlite keine wirkliche Doku gefunden.

Ich hab jetzt die php_mysqli.dll in die php.ini eingetragen. Fehler beim Starten von IPS ist keiner gekommen. Aber
mysqli_connect(„192.168.32.3“,„user“,„password“,„networkscanner“,3306);
funktioniert nach wie vor nicht.
Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in C:\ProgramData\Symcon\scripts\57045.ips.php:13

Und auch die DLL an die richtige Stelle kopiert?
Die ini musst du eigentlich nicht bearbeiten, das macht dann Symcon für dich.
Michael

Jup :wink:
C:\Program Files\Symcon\ext
Ich sehe auch bei phpinfo() dass da was mit mysql da ist…

mysql ist nicht gleich mysqli :slight_smile:

Ich glaube es müsste noch mehr DLLs geben.

paresy

Es gibt genau drei dll’s mit sql im Dateinamen. Alle drei hab ich jetzt in das Ext Verzeichnis kopiert. Erfolg hat sich leider keiner eingestellt.
sql.png
sql2.png

Ich hab mir auch testweise das Modul MySQL-Access installiert. Funktioniert natürlich auch nicht.

<br />
<b>Fatal error</b>:  Uncaught Error: Class 'mysqli' not found in C:\ProgramData\Symcon\modules\.store\demel42.mysql\MySQL\module.php:131
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\demel42.mysql\MySQL\module.php(160): MySQL->Open()
#1 C:\ProgramData\Symcon\modules\.store\demel42.mysql\MySQL\module.php(104): MySQL->ExecuteSimple('select now() as...')
#2 C:\ProgramData\Symcon\scripts\__generated.inc.php(775): MySQL->TestConnection()
#3 C:\Windows\System32\-(3): MySQL_TestConnection(52331)
#4 {main}
  thrown in <b>C:\ProgramData\Symcon\modules\.store\demel42.mysql\MySQL\module.php</b> on line <b>131</b><br />

AAAAAAAAAAAAAAAAAARGH. Man sollte doch wirklich GENAU lesen, wenn einem ein Link gegeben wird.
Parsey hat mir den Link zur Beschreibung gegeben, wo beschrieben ist, wie man die Extension installiert. Und da stehet klar und deutlich
„x64 Thread Safe“. Tja, und was hat der kleine Helmut heruntergeladen - richtig „Non Thread Safe“. Mit der richtigen DLL funktionierts dann auch. Sorry für die Verwirrung, aber vielleicht stolpert ja mal ein anderer auch drüber.