Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: SQL-Fehler nach Serverupdate

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.168
    • Geschlecht:
    SQL-Fehler nach Serverupdate
    am: 14. September 2023, 17:31:05
    Nach einen Serverupdate durch den Hoster, erhalten wir neuerdings Fehlermeldungen per Mail, wenn Artikel dupliziert werden.
    Weder an den Dateien noch andere der Datenbank wurde was verändert. Nur an den .htaccess Dateien bzgl PHP-Support serverseitig. Die Version ist dabei aber gleich geblieben.

    PHP 8.0.29
    Shop 2.0.7.0 rev 14473

    Code: SQL  [Auswählen]
    1146 - TABLE 'usr_webX82XX243_1.personal_offers_by_customers_status_' doesn't exist

    SELECT quantity,
    personal_offer
    FROM personal_offers_by_customers_status_
    WHERE products_id = '
    1392'

    Request URL: www.shop.de/admin_TVAZUGZ/categories.php?page=0&cID=14&action=multi_action_confirm

    [XT SQL Error]

    Das duplizieren klappt am Ende, aber die Mails irritieren etwas.
    Kann jemand erleuchten, woher dieser Fehler kommt? In besagter Datei kann ich zur Abfrage nichts finden.

    Oder wurde hier nur durch die Serverumstellung wieder eine Fehlermeldung reaktiviert, die vielleicht vorher nur ausgeblendet war?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=43093.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.747
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #1 am: 14. September 2023, 20:18:31
    Dazu müsste es ja eine explizitere Meldung in den Shop-Logs geben, inkl. Backtraces.

    Die Meldung kommt von der Methode duplicate_product()  aus /admin/includes/classes/categories.php  wo es diesen Code gibt:
    Code: PHP  [Auswählen]
        $customers_statuses_array = xtc_get_customers_statuses();
        foreach ($customers_statuses_array as $customers_status) {
          $copy_query = xtc_db_query("SELECT quantity,
                                             personal_offer
                                        FROM "
    .TABLE_PERSONAL_OFFERS_BY.$customers_status['id']."
                                       WHERE products_id = '"
    .$src_products_id."'");

    Offensichtlich ist also $customers_status['id']  nicht gesetzt, bzw. leer, und das kommt ja aus der Funktion $xtc_get_customers_statuses()  darüber.

    Ist die DB-Tabelle customers_status  1. vorhanden und 2. vollständig ?
    Was ergibt die folgende Query direkt in der DB ausgeführt ?
    Code: SQL  [Auswählen]
      SELECT *
        FROM customers_status
       WHERE language_id = 2
    ORDER BY customers_status_id;

    Gruß,
    noRiddle

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.168
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #2 am: 26. September 2023, 10:45:43
    Danke für die Antwort.

    An die Logs habe ich gar nicht gedacht. Das läuft voll mit diversen Warnings bzgl. des Problems.
    Zitat
    [2023-09-26 10:34:50]   [warning]   [modified]   [pid:4139621]   WARNING found for URL: /admin_TWU56GXXX/categories.php?page=1&pID=156&action=multi_action_confirm&cPath=0   {}   {}
    [2023-09-26 10:34:50]   [warning]   [modified]   [pid:4139621]   Undefined variable $customers_status in File: /var/www/vhosts/shop/admin_XYZ/includes/classes/categories.php on Line: 933   {}   {}
    [2023-09-26 10:34:50]   [warning]   [modified]   [pid:4139621]   Backtrace #0 - /var/www/vhosts/shop/admin_XYZ/categories.php called at Line 301   {}   {}
    [2023-09-26 10:34:50]   [warning]   [modified]   [pid:4139621]   WARNING found for URL: /admin_TWU56GXXX/categories.php?page=1&pID=156&action=multi_action_confirm&cPath=0   {}   {}
    [2023-09-26 10:34:50]   [warning]   [modified]   [pid:4139621]   Trying to access array offset on value of type null in File: /var/www/vhosts/shop/admin_XYZ/includes/classes/categories.php on Line: 933   {}   {}
    [2023-09-26 10:34:50]   [warning]   [modified]   [pid:4139621]   Backtrace #0 - /var/www/vhosts/shop/admin_XYZ/categories.php called at Line 301   {}   {}
    [2023-09-26 10:34:51]   [warning]   [modified]   [pid:4139621]   WARNING found for URL: /admin_TWU56GXXX/categories.php?page=1&pID=156&action=multi_action_confirm&cPath=0   {}   {}
    [2023-09-26 10:34:51]   [warning]   [modified]   [pid:4139621]   1146 - Table 'usr_web28299243_1.personal_offers_by_customers_status_' doesn't exist<br/><br/>SELECT quantity,                                            personal_offer                                       FROM personal_offers_by_customers_status_                                      WHERE products_id = '156' in File: /var/www/vhosts/xxx.yyy.alfahosting-server.de/html/shop-22/inc/db_functions_mysqli.inc.php on Line: 161   {}   {}
    [2023-09-26 10:34:51]   [warning]   [modified]   [pid:4139621]   Backtrace #0 - /var/www/vhosts/shop/admin_XYZ/includes/classes/categories.php called at Line 934   {}   {}
    [2023-09-26 10:34:51]   [warning]   [modified]   [pid:4139621]   Backtrace #1 - /var/www/vhosts/shop/admin_XYZ/categories.php called at Line 301   {}   {}
    Mir scheint hier muss ich ansetzen, bei der fehlenden Variablen $customers_status

    Die SQL-Abfrage wirft folgendes Ergebnis. Meiner Meinung nach sind alle Tabellen korrekt.
    Code: SQL  [Auswählen]
    MySQL 5.7:3306/usr_webXXX_1/customers_status/          
     Zeige Datensätze 0 -  4 (5 insgesamt, Die Abfrage dauerte 0.0011 Sekunden.) [customers_status_id: 0... - 4...]


    SELECT *
        FROM customers_status
       WHERE language_id = 2
    ORDER BY customers_status_id;


    customers_status_id     language_id     customers_status_name   customers_status_public customers_status_min_order      customers_status_max_order      customers_status_image  customers_status_discount       customers_status_ot_discount_flag       customers_status_ot_discount    customers_status_graduated_prices       customers_status_show_price     customers_status_show_price_tax customers_status_show_tax_total customers_status_add_tax_ot     customers_status_payment_unallowed      customers_status_shipping_unallowed     customers_status_discount_attributes    customers_fsk18 customers_fsk18_display customers_status_write_reviews  customers_status_read_reviews   customers_status_reviews_status customers_status_specials      
    0       2       Admin   1       0       0       admin_status.gif        0.00    1       0.00    1       1       1       150     0                       0       0       1       0       0       0       1      
    1       2       Gast    1       0       0       guest_status.gif        0.00    0       0.00    0       1       1       150     0       moneyorder              0       1       1       0       0       0       1      
    2       2       Neuer Kunde     1       0       0       customer_status.gif     0.00    0       0.00    0       1       1       150     0                       0       1       1       0       0       0       1      
    3       2       Händler        1       0       0       merchant_status.gif     0.00    0       0.00    1       1       1       150     1       moneyorder              0       1       1       0       0       0       0      
    4       2       Händler EU     1       0       0       merchant_status.gif     0.00    0       0.00    1       1       1       150     1       moneyorder              0       1       1       0       0       0       0      
     

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.747
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #3 am: 26. September 2023, 10:54:46
    Laß dir doch mal unter Zeile 929
    Code: PHP  [Auswählen]
    $customers_statuses_array = xtc_get_customers_statuses();

    das ausgeben
    Code: PHP  [Auswählen]
    echo '<pre style="padding:100px 0 0;">'.print_r($customers_statuses_array, true).'</pre>';

    Gruß,
    noRiddle

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.168
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #4 am: 26. September 2023, 11:01:24
    Die Ausgabe dazu
    Code: PHP  [Auswählen]
    Array
    (
        [0] => Array
            (
                [id] => 0
                [text] => Admin
                [csa_id] => 0
                [language_id] => 2
                [csa_name] => Admin
                [csa_public] => 1
                [csa_min_order] => 0
                [csa_max_order] => 0
                [csa_image] => admin_status.gif
                [csa_discount] => 0.00
                [csa_ot_discount_flag] => 1
                [csa_ot_discount] => 0.00
                [csa_graduated_prices] => 1
                [csa_show_price] => 1
                [csa_show_price_tax] => 1
                [csa_show_tax_total] => 150
                [csa_add_tax_ot] => 0
                [csa_payment_unallowed] =>
                [csa_shipping_unallowed] =>
                [csa_discount_attributes] => 0
                [customers_fsk18] => 0
                [customers_fsk18_display] => 1
                [csa_write_reviews] => 0
                [csa_read_reviews] => 0
                [csa_reviews_status] => 0
                [csa_specials] => 1
            )

        [1] => Array
            (
                [id] => 1
                [text] => Gast
                [csa_id] => 1
                [language_id] => 2
                [csa_name] => Gast
                [csa_public] => 1
                [csa_min_order] => 0
                [csa_max_order] => 0
                [csa_image] => guest_status.gif
                [csa_discount] => 0.00
                [csa_ot_discount_flag] => 0
                [csa_ot_discount] => 0.00
                [csa_graduated_prices] => 0
                [csa_show_price] => 1
                [csa_show_price_tax] => 1
                [csa_show_tax_total] => 150
                [csa_add_tax_ot] => 0
                [csa_payment_unallowed] => moneyorder
                [csa_shipping_unallowed] =>
                [csa_discount_attributes] => 0
                [customers_fsk18] => 1
                [customers_fsk18_display] => 1
                [csa_write_reviews] => 0
                [csa_read_reviews] => 0
                [csa_reviews_status] => 0
                [csa_specials] => 1
            )

        [2] => Array
            (
                [id] => 2
                [text] => Neuer Kunde
                [csa_id] => 2
                [language_id] => 2
                [csa_name] => Neuer Kunde
                [csa_public] => 1
                [csa_min_order] => 0
                [csa_max_order] => 0
                [csa_image] => customer_status.gif
                [csa_discount] => 0.00
                [csa_ot_discount_flag] => 0
                [csa_ot_discount] => 0.00
                [csa_graduated_prices] => 0
                [csa_show_price] => 1
                [csa_show_price_tax] => 1
                [csa_show_tax_total] => 150
                [csa_add_tax_ot] => 0
                [csa_payment_unallowed] =>
                [csa_shipping_unallowed] =>
                [csa_discount_attributes] => 0
                [customers_fsk18] => 1
                [customers_fsk18_display] => 1
                [csa_write_reviews] => 0
                [csa_read_reviews] => 0
                [csa_reviews_status] => 0
                [csa_specials] => 1
            )

        [3] => Array
            (
                [id] => 3
                [text] => Händler
                [csa_id] => 3
                [language_id] => 2
                [csa_name] => Händler
                [csa_public] => 1
                [csa_min_order] => 0
                [csa_max_order] => 0
                [csa_image] => merchant_status.gif
                [csa_discount] => 0.00
                [csa_ot_discount_flag] => 0
                [csa_ot_discount] => 0.00
                [csa_graduated_prices] => 1
                [csa_show_price] => 1
                [csa_show_price_tax] => 1
                [csa_show_tax_total] => 150
                [csa_add_tax_ot] => 1
                [csa_payment_unallowed] => moneyorder
                [csa_shipping_unallowed] =>
                [csa_discount_attributes] => 0
                [customers_fsk18] => 1
                [customers_fsk18_display] => 1
                [csa_write_reviews] => 0
                [csa_read_reviews] => 0
                [csa_reviews_status] => 0
                [csa_specials] => 0
            )

        [4] => Array
            (
                [id] => 4
                [text] => Händler EU
                [csa_id] => 4
                [language_id] => 2
                [csa_name] => Händler EU
                [csa_public] => 1
                [csa_min_order] => 0
                [csa_max_order] => 0
                [csa_image] => merchant_status.gif
                [csa_discount] => 0.00
                [csa_ot_discount_flag] => 0
                [csa_ot_discount] => 0.00
                [csa_graduated_prices] => 1
                [csa_show_price] => 1
                [csa_show_price_tax] => 1
                [csa_show_tax_total] => 150
                [csa_add_tax_ot] => 1
                [csa_payment_unallowed] => moneyorder
                [csa_shipping_unallowed] =>
                [csa_discount_attributes] => 0
                [customers_fsk18] => 1
                [customers_fsk18_display] => 1
                [csa_write_reviews] => 0
                [csa_read_reviews] => 0
                [csa_reviews_status] => 0
                [csa_specials] => 0
            )

    )

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.168
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #5 am: 26. September 2023, 11:10:22
    Wenn ich mir für die Datei die Anpassungen aus 2.0.7.1 übernehme, funktioniert alles fehlerfrei ohne LOG-Einträge.
    Ich werde es also erstmal dabei belassen, solang es keine Fehler verursacht. Bleibt zu prüfen ob hier ein Update nicht komplett übernommen wurde und ggf. dieses noch nachgeholt werden soll.

    Danke für die Mithilfe!

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.747
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #6 am: 26. September 2023, 11:10:45
    Das (die Ausgabe) ist in Ordnung, aaaber das
    Code: PHP  [Auswählen]
    foreach ($customers_statuses_array as $customers_statuses) {

    und in der Query dann
    Code: PHP  [Auswählen]
    FROM ".TABLE_PERSONAL_OFFERS_BY.$customers_status['id']."

    und im INSERT dann
    Code: PHP  [Auswählen]
    xtc_db_perform(TABLE_PERSONAL_OFFERS_BY.$customers_status['id'], $sql_data_array);

    ist inkorrekt.

    Code: PHP  [Auswählen]
    foreach ($customers_statuses_array as $customers_statuses) {

    müsste heißen
    Code: PHP  [Auswählen]
    foreach ($customers_statuses_array as $customers_status) {

    oder an den beiden anderen genannten Stellen statt
    $customers_status   $customers_statuses

    An einen solchen Bug kann ich mich gar nicht erinnern und ich habe für die 2.0.7.0 auch kein Changeset diesbezüglich.

    Aber was soll man sagen, man sollte seinen Shop aktuell halten...

    Gruß,
    noRiddle

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.168
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #7 am: 26. September 2023, 14:09:23
    Komischerweise funktionierte alles trotz Fehlermeldung weiterhin. Auch ist diese Fehlermeldung erst nach dem Serverupdate durch den Hoster präsent geworden. Eine Erklärung habe ich nicht dafür. Vermuten kann ich nur das ein unvollständiges Shopupdate dazu geführt hat.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.747
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #8 am: 26. September 2023, 14:41:33
    Die Aussage verstehe ich nicht.
    Ich habe doch geschrieben, daß es einen Bug gibt in der 2.0.7.0, nämlich genau den mit dem $customers_statuses.
    Fällt halt nur auf wenn man einen Artikel duplizieren möchte, denn die verkehrte Variable wird in der Klasse in der Methode dafür benutzt.

    Gruß,
    noRiddle

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.168
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #9 am: 26. September 2023, 15:27:34
    Dann habe ich Deine Aussage falsch aufgefasst. Ich dachte Du beziehst das auf mein Fall und dass ich hier einen Sonderfall habe :-)
    Zitat
    An einen solchen Bug kann ich mich gar nicht erinnern und ich habe für die 2.0.7.0 auch kein Changeset diesbezüglich

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.747
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #10 am: 26. September 2023, 15:30:07
    Das habe ich nur geschrieben weil ich mich wundere.

    Woher sollte ich denn den Code haben, ich kann doch nicht in deine Shop-Dateien schauen.
    Ich habe dargelegt was im Original-Code der Version 2.0.7.0 verkehrt ist.

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.747
    • Geschlecht:
    Re: SQL-Fehler nach Serverupdate
    Antwort #11 am: 26. September 2023, 23:15:42
    Noch zur Klärung:
    Ich hatte in Antwort #1 versehentlich den Code aus der 2.0.7.2 gepostet. Deshalb war mir das Problem, da es in der genannten Version bereits gefixt ist, auch nicht aufgefallen.

    Gruß,
    noRiddle