Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    SQL Error : 1064 You have an error in your SQL syntax

    ragazzi ho questo errore...

    codice:
    Could not select ads
    
    DEBUG MODE
    
    SQL Error : 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 ') < CURDATE()' at line 3
    
    SELECT id FROM ads_adverts WHERE DATE_ADD(expiry_date, INTERVAL DAY) < CURDATE()
    
    Line : 66
    File : index.php
    ed il file index.php verso il rigo 66 è così...

    codice:
    $sql = "SELECT id
          FROM ". ADS_ADVERTS_TABLE ."
          WHERE DATE_ADD(expiry_date, INTERVAL " . $days_to_prune . " DAY) < CURDATE()";
    
    // dont do this or error will display if non is found
    if ( !($result = $db->sql_query($sql)) )
    {
       message_die(GENERAL_ERROR, 'Could not select ads', '', __LINE__, __FILE__, $sql);
    }
    secondo voi dove sbaglio?

  2. #2

  3. #3
    sembra che $days_to_prune sia vuoto e ne viene fuori un errore di sintassi.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    però piero, subito prima della query ho inserito

    $days_to_prune = '60';

    cosa c'è che non quadra secondo te?

  5. #5
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Forse sciocca come osservazione, ma secondo me manca un ";" alla fine della query:
    Codice PHP:
    $sql "SELECT id
          FROM "
    ADS_ADVERTS_TABLE ."
          WHERE DATE_ADD(expiry_date, INTERVAL " 
    $days_to_prune " DAY) < CURDATE()[B];[/B]"
    Tante volte ho avuto errori simili al tuo (SQL Syntax) e avevo dimenticato il ";" alla fine della query...

  6. #6
    Originariamente inviato da ratlook
    però piero, subito prima della query ho inserito

    $days_to_prune = '60';

    cosa c'è che non quadra secondo te?
    il messaggio di errore parla chiaro.

    codice:
    SQL Error : 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 ') < CURDATE()' at line 3
    
    SELECT id FROM ads_adverts 
    WHERE DATE_ADD(expiry_date, INTERVAL DAY) < CURDATE()
    come puoi vedere tra INTERVAL e DAY manca il valore.

    potresti anche usare la sintassi senza la funzione, ma nulla toglierebbe al tup problema:
    codice:
    WHERE expiry_date + INTERVAL $days_to_prune DAY)  < CURDATE()
    per caso valorizzi la variabile fuori e tu sei dentro ad un tua funzione?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    per caso valorizzi la variabile fuori e tu sei dentro ad un tua funzione?
    esatto, proprio così.
    ora ho chiuso la funzione e tutto è ok!

    Piero, complimenti... 6 davvero bravissimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.