Temperatur über phpmyadmin auslesen Raspberry Pi 3b

  • Hallo zusammen,

    bin ganz neu hier und habe nicht soviel Ahnung von Raspberry, webservern und dem gleichen.

    Möchte aber gerne Einiges damit anstellen.


    Habe phpmyadmin auf meinen Raspi eingerichtet kann alles verwalten bin also der Admin.

    Möchte gerne Temperatur-Daten an den Webserver weiterleiten klappt aber nicht.

    Diese Fehlermeldung kommt, wie ich es herauslesen kann ist die Zeile 24 defekt falsch programmiert....


    root@raspberrypi:~# php -f /var/www/html/getTemp.php

    PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /var/www/html/getTemp.php:24

    Stack trace:

    #0 {main}

    thrown in /var/www/html/getTemp.php on line 24




    Im phpmyadmin habe ich einen Benutzer "Wetter" erstellt dem habe ich das auch das Passwort "wetter" vergeben also das einfachste. Im SQL folgendes eingetragen:


    use Wetter;
    CREATE TABLE tbl_Wetter( timestamp BIGINT NOT NULL, temperature FLOAT, PRIMARY KEY (timestamp) ) ENGINE=InnoDB;

    Wenn mir einer helfen kann sage ich schon mal Danke!





    <?php

    /*

    * Gesetze des erstellten Benutzers eintrgen

    *

    */

    $mysqlhost="localhost";

    $mysqluser="Wetter";

    $mysqlpwd="wetter";

    $mysqldb="Wetter";


    //Hier muss der Sensor Name eingeragen werden !

    $temperatureSensorPath = "/sys/bus/w1/devices/28-00000836ba0b/w1_slave";



    // --- Lese Daten aus ---

    $tempSensorRawData = implode('', file($temperatureSensorPath));

    //Unnötige dinge, vor der Temperatur werden verworfen

    $tempSensorTemperature = substr($tempSensorRawData, strpos($tempSensorRawData, "t=") + 2);

    //Kommastelle wird verschoben

    $temperature = sprintf("%2.2f", $tempSensorTemperature / 1000);

    $timestamp = time();


    // --- Schreibe Daten in die Datenbank ---

    $connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Could not connect to DB!"); <<<<<< 24. Bei dieser Zeile meckert er!!!!!!!

    mysql_select_db($mysqldb, $connection) or die("Could not select DB!");

    // Das ist der Quary zu erstellen der Daten in der Datenbank

    $sql_query = "INSERT INTO tbl_wetter VALUES ($timestamp, $temperature);";

    //Führe Quary aus.

    mysql_query($sql_query);


    ?>

  • Call to undefined function mysql_connect()

    Welche PHP-Version benutzt du? Wahrscheinlich php7.x, da gibt es mysql_connect nicht mehr. Benutze mysqli oder pdo.

    " […] if you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."

  • Ja es die 7.0 bei strecht gibts ja keine 5 mehr.


    alt

    $connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Could not connect to DB!");


    neu

    $connection=mysqli($mysqlhost, $mysqluser, $mysqlpwd) or die ("Could not connect to DB!");


    so? :-)


    Danke für die schnelle Antwort.

  • jetzt kommt der nächste Fehler.

    Habe schon einiges probiert krieg den nicht weg



    root@raspberrypi:~# php -f /home/pi/getTemp.php

    PHP Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /home/pi/getTemp.php on line 25

    Could not select DB!root@raspberrypi:~#

  • Du kannst die Funktionen nicht 1:1 einfach umbenennen, deshalb hatte ich dir den Link zur Lektüre empfohlen.


    mysqli_select_db( $link, $database)

    Die Parameterreihenfolge ist umgekehrt worden.

    " […] if you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."

  • danke soweit.

    ich glaube ich habe alle Fehler bis auf einen gefunden den letzten kriege ich nicht weg.

    Die zahle 29 macht nicht mit warum auch immer.


    PHP Warning: mysqli_query() expects at least 2 parameters, 1 given in /home/pi/getTemp.php on line 29


    <?php

    /*

    * Gesetze des erstellten Benutzers eintrgen

    *

    */

    $mysqlhost="localhost";

    $mysqluser="Wetter";

    $mysqlpwd="wetter";

    $mysqldb="Wetter";


    //Hier muss der Sensor Name eingeragen werden !

    $temperatureSensorPath = "/sys/bus/w1/devices/28-00000836ba0b/w1_slave";



    // --- Lese Daten aus ---

    $tempSensorRawData = implode('', file($temperatureSensorPath));

    //Unnötige dinge, vor der Temperatur werden verworfen

    $tempSensorTemperature = substr($tempSensorRawData, strpos($tempSensorRawData, "t=") + 2);

    //Kommastelle wird verschoben

    $temperature = sprintf("%2.2f", $tempSensorTemperature / 1000);

    $timestamp = time();


    // --- Schreibe Daten in die Datenbank ---

    $connection=mysqli_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Could not connect to DB!");

    mysqli_select_db($connection, $mysqldb) or die("Could not select DB!");

    // Das ist der Quary zu erstellen der Daten in der Datenbank

    $sqli_query = "INSERT INTO tbl_wetter VALUES ($timestamp, $temperature);";

    //Führe Quary aus.

    mysqli_query($sqli_query);<---------Zeile 29


    ?>

  • Da fehlt das $connection, siehe Link den ich dir gab.

    " […] if you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."