Managed Server
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: Unterschied SQL-Schreibweise "from" oder "FROM"

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Da ich ja ein wenig ein Ordnungsfanatiker bin, schreibe ich die SQL-Befehle immer in Großbuchstaben.
    Das heißt statt

    Code: SQL  [Auswählen]
    SELECT xyz FROM xyz WHERE x = 1
     
    schreibe ich immer

    Code: SQL  [Auswählen]
    SELECT xyz FROM xyz WHERE x = 1
     
    Nun erlebe ich gerade etwas sehr kurioses. Aus folgendem Query:

    Code: PHP  [Auswählen]
    $cc_query_raw = "select c.coupon_id, c.coupon_code, c.coupon_amount, c.coupon_type, c.coupon_start_date, c.coupon_expire_date, c.uses_per_user, c.uses_per_coupon, c.restrict_to_products, c.restrict_to_categories, c.date_created, c.date_modified, c.coupon_active, cd.coupon_name from " . TABLE_COUPONS ." c," . TABLE_COUPONS_DESCRIPTION . " cd where cd.coupon_id = c.coupon_id and cd.language_id = '" . $_SESSION['languages_id'] . "'" . $where_status . $where_search . $where_type . $sort;
     
    habe ich dieses gemacht

    Code: PHP  [Auswählen]
    $cc_query_raw = "SELECT c.coupon_id, c.coupon_code, c.coupon_amount, c.coupon_type, c.coupon_start_date, c.coupon_expire_date, c.uses_per_user, c.uses_per_coupon, c.restrict_to_products,      c.restrict_to_categories, c.date_created, c.date_modified, c.coupon_active, cd.coupon_name FROM " . TABLE_COUPONS ." c," . TABLE_COUPONS_DESCRIPTION . " cd WHERE cd.coupon_id = c.coupon_id AND cd.language_id = '" . $_SESSION['languages_id'] . "'" . $where_status . $where_search . $where_type . $sort;
     
    und schon kommt folgender SQL-Fehler:

    Code: SQL  [Auswählen]
    1064 - You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'SELECT c.coupon_id, c.coupon_code, c.coupon_amount, c.coupon_type, c.coupon_star' at line 1

    SELECT COUNT(*) AS total SELECT c.coupon_id, c.coupon_code, c.coupon_amount, c.coupon_type, c.coupon_start_date, c.coupon_expire_date, c.uses_per_user, c.uses_per_coupon, c.restrict_to_products, c.restrict_to_categories, c.date_created, c.date_modified, c.coupon_active, cd.coupon_name FROM coupons c,coupons_description cd WHERE cd.coupon_id = c.coupon_id AND cd.language_id = '2' AND c.coupon_active = 'Y'
     
    Sobald ich das FROM in from ändere funktioniert es wieder tadellos. Muss man nicht verstehen, oder?

    Gruß
    Ronny



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

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Unterschied SQL-Schreibweise "from" oder "FROM"
    Antwort #1 am: 14. Juli 2011, 23:22:32
    :lol1:

    Code: SQL  [Auswählen]
    SELECT COUNT(*) AS total SELECT ...
    muss da kein Semikolon zwischen?

    Sorry Ronny,
    die Tante-G gibt dazu auch keinen Hinweis, hängt es vielleicht damit zusammen, dass da was zusammen gesetzt wird?

    Gruß

    h-h-h

    Matt

    • Experte
    • Beiträge: 4.241
    Unterschied SQL-Schreibweise "from" oder "FROM"
    Antwort #2 am: 15. Juli 2011, 08:22:12
    Ne, muss man nicht. Aber wo kommt denn der Teil her, den h-h-h anspricht? Der ist ja im originalen Query gar nicht enthalten.

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Unterschied SQL-Schreibweise "from" oder "FROM"
    Antwort #3 am: 15. Juli 2011, 10:51:19
    Das

    Code: PHP  [Auswählen]
    select count(*) as total
    holt sich das Shopsystem aus irgendwelchen Tiefen. Die exakte Stelle habe ich noch nicht gefunden. Das ursprüngliche Query stammt aus der "/admin/coupon_admin.php".

    web28

    • modified Team
    • Beiträge: 9.404
    Unterschied SQL-Schreibweise "from" oder "FROM"
    Antwort #4 am: 15. Juli 2011, 13:15:31
    Der Fehler resultiert aus der "function splitPageResults()".

    Hier wird einiges gemacht, u.a. auch nach "from" gesucht, und da wird dann "FROM" nicht gefunden.

    Solche Funktionen sollten natürlich narrensicher sein, z.B. mit "strtolower".

    h-h-h

    • modified Team
    • Beiträge: 4.562
    Unterschied SQL-Schreibweise "from" oder "FROM"
    Antwort #5 am: 15. Juli 2011, 14:43:27
    Da wir auf PHP5 wechseln, sollte die Funktion stripos() statt strpos() verwendet werden.

    Gruß

    h-h-h

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Unterschied SQL-Schreibweise "from" oder "FROM"
    Antwort #6 am: 15. Juli 2011, 15:09:17
    Danke euch beiden, habe nun vorsorglich "strpos()" durch "stripos()" ersetzt und nun funktioniert es auch tadellos.

    Sollte vielleicht in die neue Shopversion einfließen.

    web28

    • modified Team
    • Beiträge: 9.404
    Unterschied SQL-Schreibweise "from" oder "FROM"
    Antwort #7 am: 15. Juli 2011, 15:15:20
    Ja, es müssen nur alle Problemstellen gefunden werden.

    Die Adminfunktion ist im Trunc bereits mit stripos gefixt.

               
    anything