Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] PHP script unter Linux ausführten

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] PHP script unter Linux ausführten

    Hallo zusammen,
    Dieses Script läuft (ich muss noch einiges abfangen), ich möchte eine xml Datei in mysql einlesen. In meinen Browsewr läuft dies. Die Daten werden schön in mysql reingeschaufelt.
    Mien Ziel ist dies über einen CronJob alle 5 Min laufen zu lassen.
    Ich habe sie testweise mal über Komando Zeile in meinen Linux gesartet und bekomme immer diesen Fehler
    Code:
    PHP Fatal error:  Call to undefined function mysql_connect() in /opt/lampp/htdocs/function/db_verbindung3.php on line 9
    Untersützt LINUX in der Kommandozeile php/mysql dies mysql_connect Function nicht?
    Hat jemand erfahrung. Ich habe so etwas noch nicht gemacht, betrifft es mehrere Befehle die nicht gehen?

    Um die Verbindung geht es.
    PHP-Code:
    <?php // Start mit SQL 
    //Verrbindung zur Datenbank aufbauen

    $mysql_hostname "localhost"// Example : localhost
    $mysql_user "root";
    $mysql_password "";
    $mysql_database "preise";
    //

    $bd mysql_connect($mysql_hostname$mysql_user$mysql_password) or die("Verbindungsfehler zur Datenbank");
    mysql_select_db($mysql_database$bd) or die("Da passt was nicht");
    ?>
    Das ist der restliche Code (Nurt Gott weis ob das unter Linux Läuft)


    PHP-Code:
    <?php

    foreach (glob("//..IP....... /SERVER2/FTP_XML/*client_22_price.xml") as $filename) {
        
    //echo $filename;
    }

    $xmlDoc = new DOMDocument();
    $xmlDoc->load("$filename");
    $mysql_hostname "localhost"
    $mysql_user "root";
    $mysql_password "";
    $mysql_database "preise";



    $bd mysql_connect("$mysql_hostname""$mysql_user""$mysql_password");
    mysql_select_db("$mysql_database""$bd");

    $xmlObject $xmlDoc->getElementsByTagName('CompetitorPrices');
    $itemCount $xmlObject->length;

    for (
    $i 0$i $itemCount$i++) {
        
    $mts $xmlObject->item($i)->getElementsByTagName('competitorID')->item(0)->childNodes->item(0)->nodeValue;
        
    $effectiveDate $xmlObject->item($i)->getElementsByTagName('effectiveDate')->item(0)->childNodes->item(0)->nodeValue;
        
    $productCode $xmlObject->item($i)->getElementsByTagName('productCode')->item(0)->childNodes->item(0)->nodeValue;
        
    $source $xmlObject->item($i)->getElementsByTagName('source')->item(0)->childNodes->item(0)->nodeValue;
        
    $priceValue $xmlObject->item($i)->getElementsByTagName('priceValue')->item(0)->childNodes->item(0)->nodeValue;

        
    //$effectiveDate = "2014-12-05T16:42:06";
    $teile explode("T"$effectiveDate);
    $datum $teile[0]; // Teil1
    $zeit =  $teile[1]; // Teil2

        
        
    if ($productCode == "Diesel") {
            
    $sql "UPDATE `master` SET `produkt_dk` = '$productCode', `price_dk` ='$priceValue', `datum_dk`= '$datum', `zeit_dk`= '$zeit', `source` = '$source' where `mts`= '$mts' ";
        } else {
            if (
    $productCode == "Super") {
                
    $sql "UPDATE `master` SET `produkt_s` = '$productCode', `price_s` ='$priceValue', `datum_s`= '$datum', `zeit_s`= '$zeit', `source` = '$source' where `mts`= '$mts' ";
            } else {
                if (
    $productCode == "E10") {
                   
    $sql "UPDATE `master` SET `produkt_e10` = '$productCode', `price_e10` ='$priceValue', `datum_e10`= '$datum', `zeit_e10`= '$zeit', `source` = '$source' where `mts`= '$mts' ";
                }
            }
        }

    //echo $sql;
        
    mysql_query($sql);
       
    // print "Finished Item $effectiveDate \n<br/>";
    }



    //$datei = "$filename";
    //if (copy($datei , "./Backup/" . $datei)) {
    //unlink($datei);
    //}



    ?>


  • #2
    Entweder ist die MySQL Extension nicht aktiviert, oder deine PHP Version ist so neu, das sie schon rausgeflogen ist.
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Probiere bitte mal deinen Script auf mysqli umzurüsten http://php.net/manual/de/book.mysqli.php
      Nützliches:

      Kommentar


      • #4
        Erklärung dazu zum Beispiel hier: http://php-de.github.io/jumpto/faq/#deprecated-mysql (derzeit letzter Eintrag – Browser scrollt da nicht ganz hin)

        Um vielleicht noch kurz eine etwaige Falschannahme zu klären:

        Zitat von JNPANZER
        Untersützt LINUX in der Kommandozeile php/mysql dies mysql_connect Function nicht?
        Hat jemand erfahrung. Ich habe so etwas noch nicht gemacht, betrifft es mehrere Befehle die nicht gehen?
        Das ist keine Sache, die etwas mit dem Betriebssystem generell zu tun hat. Das ist eine Frage des Setups. So was wie „Windows kann die mysql-Extension nutzen, Linux nicht“ gibt es nicht.[1] Das hängt immer nur daran, welche Extensions im Rahmen der PHP-Installation beziehungsweise der Server-Software (vermutlich Apache) installiert worden sind.

        Wenn du Shell-Zugriff hast, führ mal $ php -m aus. Das zeigt dir eine Liste der verfügbaren Module. $ php --version kann auch nicht schaden.

        Edit: Ach ja, hat es einen besonderen Grund, dass du LAMPP nutzt? Normalerweise kannst du auf einem Linux-System die entsprechende Server-Software auch direkt aus dem Repository der Distribution installieren.



        1: Na ja, es wird Extensions geben, die nur für das eine OS angeboten werden. Mit denen kommt man aber in der Regel nicht in Kontakt, wenn man keine speziellen Anforderungen hat.

        Kommentar


        • #5
          Dann sag ich mal Danke für die Super Hilfe..

          Habt alle wirklich herzlichen Dank, viel Post und alle haben mir geholfen, am Ende habeich einen neuen Webserver aufgesetzt, ohne das sche... XAMPP, es ist wirklich zum lernen super, aber wann man etwas mehr mit scripte arbeitet über Kommandozeile klappt das hinten und vorne nicht.

          Das XAMPP hat mir nun 4 Tage und Nächte gekostet, das Problem war das ich php und mysql von Linux (KOmmandozeile)nicht dazu gebracht sich mit XAMPP zu verstehen, es fehlt mitr auch einfach das wissenbzw. Zeit. Ich habe mir einen vernünftigen Linux-Server aufgesetzt, nun siehe da es läuft, musste ihn 4 mal aufsetzten da ich 3 mal zerschossen habe. Ich habe auch die MySQL Extension freigegeben, und habe das mit MYSQLI angefangen.

          Ich war von den PHP Forum anfangs nicht begeistert, da ich ein par mal blöd angemacht wurde. Aber nun stell ich mird die Frage was würde ich ohne diese nette Hilfe machen


          Danke und schöne Grüße

          Kommentar


          • #6
            Und bzgl. eines XML-Konstruktes: Schau dir mal xpath an.

            PHP-Code:
            $xpath->evaluate('string(//CompetitorPrices//priceValue/*[1]/*[1]/text())'
            Standards - Best Practices - AwesomePHP - Guideline für WebApps

            Kommentar


            • #7
              Zitat von JNPANZER Beitrag anzeigen
              Ich habe auch die MySQL Extension freigegeben, und habe das mit MYSQLI angefangen.
              Nimm lieber gleich PDO. Neben anderen Vorteilen die PDO bietet hast du weniger Probleme wenn du andere Datenbanken wie postgresql nutzen mußt oder was Kleines mit SQLite machen möchtest.
              PHP-Klassen auf github

              Kommentar

              Lädt...
              X