1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

xtcommerce 3.04 auf mysqli umstellen

Dieses Thema im Forum "PHP" wurde erstellt von arsawede, 27. September 2016.

  1. arsawede

    arsawede Grünschnabel

    ich kenne mich in html relativ gut aus, aber nicht in PHP und muß einen xtcommerce 3.04-Shop auf mysqli umstellen, weil der Provider in Zukunft PHP 5.2 nicht mehr unterstützt und PHP 5.5 und höher ganz offensichtlich mysqli verlangt. Einfach alle mysql in mysqli ändern bringt aber die Fehlermeldung:
    Verbindung erfolgreich:
    Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\inc\xtc_db_query.inc.php on line 31

    Warning: mysqli_errno() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\inc\xtc_db_query.inc.php on line 31

    Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\inc\xtc_db_query.inc.php on line 31
    -
    Hier der Code von xtc_db_connect.inc.php
    Code (PHP):
    1. //  include(DIR_WS_CLASSES.'/adodb/adodb.inc.php');
    2.   function xtc_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link') {
    3.     global $$link;
    4.  
    5.     if (USE_PCONNECT == 'true') {
    6.      $$link = mysqli_pconnect($server, $username, $password, $database);
    7.     } else {
    8. $$link = mysqli_connect($server, $username, $password, $database);
    9.       }
    10.  
    11.     if ($$link) // mysqli_select_db($database)
    12. {
    13. echo 'Verbindung erfolgreich: ';
    14.  
    15.  }
    16. else
    17. {
    18. die ('keine Verbindung möglich: ' . mysqli_error());
    19. }
    20.     return $$link;
    21.   }
    22.  
    23. und hier von [U][B]xtc_db_query.inc.php[/B][/U]
    24. [code=php]
    25. // include needed functions
    26.   include_once(DIR_FS_INC . 'xtc_db_error.inc.php');
    27.   $link = '$db_link';
    28.   function xtc_db_query()
    29. {
    30.     global $$link;
    31.  
    32.     //echo $query.'<br>';
    33.  
    34.     if (STORE_DB_TRANSACTIONS == 'true') {
    35.       error_log('QUERY ' . $query . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
    36.     }
    37. //    $queryStartTime = array_sum(explode(" ",microtime()));
    38.     $result = mysqli_query($query, $$link) or xtc_db_error($query, mysqli_errno(), mysqli_error());
    39. //   $queryEndTime = array_sum(explode(" ",microtime()));
    40. //   $processTime = $queryEndTime - $queryStartTime;
    41. //   echo 'time: '.$processTime.' Query: '.$query.'<br>';
    42.  
    43.  
    44.     if (STORE_DB_TRANSACTIONS == 'true') {
    45.        $result_error = mysqli_error();
    46.        error_log('RESULT ' . $result . ' ' . $result_error . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
    47.     }
    48.  
    49.     return $result;
    50.   }
    51.  
    52. was ist falsch?
     
  2. alxy

    alxy Erfahrenes Mitglied

    So einfach ist das auch nicht. Hast du mal darüber nachgedacht, die Shopsoftware an sich zu aktualisieren? Wie es aussieht, ist diese Version schon 8 Jahre alt.
     
  3. arsawede

    arsawede Grünschnabel

    Das Problem: ich bin 73 und weiß nicht, wie lange ich den Shop noch betreiben werde. Ich hab zwar schon zu Beginn von html sozusagen zu Fuß ohne Hilfsprogramm meine Webseite (nicht den Shop) erstellt und erst später dann mit Frontpage weiter entwickelt, aber es fällt mir heute schwer (vielleicht wegen dem Alter) bei PHP auch noch mal von vorn anzufangen, zumal ich mit dem Shop, so wie er ist, sehr zufrieden bin. Aber 1&1 hält mir zwar noch gegen Gebühr PHP 5.2 bereit, nur weiß ich nicht, wie lange noch und dann wäre mysqli nicht zu umgehen. Gibt es keinen Weg, ohne sich in PHP zu vertiefen, das mysqli-Problem zu lösen ?
     
  4. alxy

    alxy Erfahrenes Mitglied

    Nein, einfach wird es nicht. Man müsste mühsam den Code durchsehen und schauen, was genau wie angepasst werden müsste. Ich würde dir empfehlen (ja nachdem wieviele Produkte, und welche angeboten werden), dir mal die aktuellen Shopwares anzusehen, vielleicht auch die bereits gehosteten. Da musst du dich dann um nichts mehr kümmern, und nur noch die Produkte einpflegen (meist gegen eine kleine monatliche Gebühr). Die Themes kann man meist trotzdem noch mit HTML/CSS anpassen.

    Übrigens ein weiteres Problem ist, dass neben mysql_* noch andere Sachen in PHP veraltet sind. Du weißt also garnicht, ob die Anwendung, selbst nachdem man das mysqli -Problem gelöst hat, es nicht noch weitere Inkompatibilitäten gibt (ich würde fast darauf wetten).
     
  5. arsawede

    arsawede Grünschnabel

    Vielen Dank für die ehrliche Antwort. Ich muß mal überlegen, was ich mache.
     
  6. merzi86

    merzi86 Erfahrenes Mitglied

    Rein auf das Problem mit Mysql betrachtet:
    xtcommerce scheint das ursprünglich das Datenbankframework Adodb zu nutzen.

    Ein Hinweis findet man hier:
    Code (PHP):
    1. include(DIR_WS_CLASSES.'/adodb/adodb.inc.php');
    Dadurch würde es reichen eine aktualisierte Version von adodb einzuspielen (in den xtcommerce Ordner /adodb kopieren).

    http://adodb.org/

    Aber wie bereits alxy erwähnt hat garantiert das noch lange nicht, dass das Portal dann wieder richtig läuft, da sich in PHP teils sehr viel getan hat.
    Besser kommst du wirklich, besonders da du nur wenige PHP kenntnisse besitzt, wenn du eine aktualisierte Version von xtcommerce einspielst.
     
Die Seite wird geladen...