Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    problema query di lettura

    Cosa c'è di sbagliato nella lettura di questa query mysql?
    codice:
    require_once("config.php"); //in config ci sono i parametri di connessione al database
    
    $connessione = mysql_connect($server, $user, $pass);
    if (!$connessione) {
          die ('Non riesco a connettermi: ' . mysql_error());
         }
         
    $db_selected = mysql_select_db($db, $connessione);
    if (!$db_selected) {
          die ("Errore nella selezione del database: " . mysql_error());
         }
    
    $query = "select id_product from `".$prefix."_product` where codice = '" . $codice_articolo . "'";
    $result = mysql_query($query, $connessione) or die (mysql_error());
     while($articoli = mysql_fetch_array($result)){ 
              $product_id = $articoli['id_product']; // recupero l'id del prodotto da aggiornare
             }
    Vi dico che ho fatto il debug di questo codice.
    La query è corretta perché se inserisco il valore della variabile $query nel phpmyadmin la query viene eseguita tranquillamente.
    Fino a $result tutto ok.
    Quando faccio la while però $articoli risulta "(bool) false" e di conseguenza la variabile $product_id non viene valorizzata.

    Cosa sbaglio?

    Grazie.

  2. #2
    Che errore ti da? Hai fatto un echo di $query?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Si ho stampato $query e ho provato il risultato in phpmyadmin per vedere se avevo sbagliato qualcosa nella query, invece funziona.
    Se eseguo lo script non dà nessun errore.
    Quindi ho fatto il debug riga per riga e mi sono accorto che quando mi trovo sulla riga della while e premo il tasto per continuare il debug salta il rigo successivo facendomi capire che nella while non entra proprio.

  4. #4
    Mea culpa. Il problema non è nella procedura ma nel database.
    Scusatemi per questa mi svista ma ci stavo su da più di un'ora.
    grazie per il supporto.

  5. #5
    Ok. Comunque è strano che non ti restituisse alcun errore a meno che la loro visualizzazione non sia disabilitata.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    annotazione (visto che ormai son un superespertone di sicurezza PHP, per modo di dire!).
    E' un pezzo di codice ideale per SQL injection

  7. #7
    il fatto è che nel database mancavano alcune righe e quindi il risultato della query era vuota.

  8. #8
    Quote Originariamente inviata da DUMAX Visualizza il messaggio
    il fatto è che nel database mancavano alcune righe e quindi il risultato della query era vuota.
    Il che, però, non va d'accordo con la tua affermazione sul fatto che tu abbia provato la query manualmente e che essa abbia funzionato
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    non potendo fare il debug online l'ho fatto in localhost e solo dopo un'ora mi sono accorto che il contenuto del db online era più ricco di quello in localhost (in localhost mancavano dei dati). tutto qua :-)
    la query l'ho testata online invece che in localhost e quindi funzionava.

  10. #10
    Quote Originariamente inviata da DUMAX Visualizza il messaggio
    non potendo fare il debug online l'ho fatto in localhost e solo dopo un'ora mi sono accorto che il contenuto del db online era più ricco di quello in localhost (in localhost mancavano dei dati). tutto qua :-)
    la query l'ho testata online invece che in localhost e quindi funzionava.
    Ah, ecco spiegato l'arcano!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.