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

    Problema con query su MySQL 4.0

    Ciao a tutti,
    ho una query che in un caso particolare mi crea dei problemi su MySQL 4.0.

    Il problema nasce se il valore per il campo username (tipo varchar) contiene un "-":
    codice:
    UPDATE utenti SET permessi_mod='10' WHERE permessi_mod='0' AND username='a-a'
    La stessa query, con un valore di sole lettere, tipo questa, non mi dà alcun problema:
    codice:
    UPDATE utenti SET permessi_mod='10' WHERE permessi_mod='0' AND username='aaaa'
    Come posso risolvere l'inconveniente?

    Ciao!

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: Problema con query su MySQL 4.0

    Originariamente inviato da superpelo
    mi crea dei problemi

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    prova a racchiudere il campo fra apici usando alt 96.

    edit. comunque mi sa che sarebbe meglio evitarlo come carattere.

  4. #4
    Niente da fare.. e la cosa divertente è che la select funziona.. invece l'update no..

    Cioè questa query va:
    codice:
    SELECT * FROM utenti WHERE permessi_mod='0' AND username='a-a'

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da nicola75ss
    prova a racchiudere il campo fra apici usando alt 96.

    edit. comunque mi sa che sarebbe meglio evitarlo come carattere.
    scusa, stavo pensando al trattino nel nome del campo, è lì che andrebbe evitato.
    per il tuo problema non saprei. non ho neanche sottomano la versione 4.0 per fare delle prove.

  6. #6
    Prova a mettere un backslash prima del trattino così da darglielo come valore letterale e non come un meno
    SELECT * FROM utenti WHERE permessi_mod='0' AND username='a\-a'

    E se devi inserirlo invece tramite PHP...

    $username = addslashes($username);
    SELECT * FROM utenti WHERE permessi_mod='0' AND username='".$username."'
    ...se ho capito bene...

  7. #7

  8. #8
    Originariamente inviato da superpelo
    Manco così...
    guarda che dire che ti crea problemi ha valenza solo per te. Si tratta di una stringa e quindi il carattere - vale tanto come un'altro.

    i carattere che necessitano di escape sono: apici ' , doppi apici ", backslash \ , e NULL.

    Quindi metti la segnalazione che ricevi, altrimenti il problema che crea e' solo tuo.

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

  9. #9
    Chiedo venia.. sono io un gran pirla.. il problema stava qua: permessi_mod='0'..

    Il 4.1 interpreta il campo vuoto anche come '0'.. il 4.0 decisamente no.. e da qui deriva il malfunzionamento..


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.