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

    [Mysql] Campo varchar e numeri di telefono

    ciao!
    in una tabella ho messo un campo varchar(20) per i numeri di telefono.
    se io salvo un valore in questo campo un valore così +391234567, il db ci mette in mezzo dei punti.
    se invece lo salvo senza il + (magari mettendoci il classico 00) allora non vengono messi punti.
    avete idea del perchè??

  2. #2
    Sei sicuro sia il db e non la query di inserimento? Oppure il valore che inserisci? Lo inserisci tra apici come stringa o senza come numerico?

    In mysql il divisore punto serve per i decimali....

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

  3. #3
    ciao!

    guarda la cosa strana è che lo fa anche quando vado a modificare il valore direttamente da phpmyadmin.
    per questo mi suona strana questa cosa.

    se faccio da programma, faccio da php usando pdo e i prepared statement.
    non riscontro questo problema da altre parti.
    tutto impostato su utf8.

  4. #4
    Sono quasi sicuro che mettendo il più lo imposta come numero decimale.
    devi inserire il dato mettendo gli apici per far in modo che lui sia sicuro che sia un testo. La prova del nove, prova ad inserire un numero di tel con una lettera. E vedi che risultato ottieni. Se non mette i punti di valore decimale allora devi impostare un qualificatore di testo durante l'immissione.

  5. #5
    ok mettendo una lettera non ho problemi.
    quindi potrei banalmente aggiungere una lettera nel valore, e poi non mostrarla sulla pagina.
    in teoria dovrebbe una soluzione trasparente anche per l'utente che non vede nulla al riguardo!

  6. #6
    Quote Originariamente inviata da fermat Visualizza il messaggio
    ok mettendo una lettera non ho problemi.
    quindi potrei banalmente aggiungere una lettera nel valore, e poi non mostrarla sulla pagina.
    in teoria dovrebbe una soluzione trasparente anche per l'utente che non vede nulla al riguardo!
    devi mettere il valore tra apici come gia' ti chiedevo prima.

    campo = '+1234567890'

    ma non sei stato preciso nel primo post .... mette in mezzo "dei punti" che vuol dire? Se lo scambiasse per un numero decimale di punti in mezzo ce ne sarebbe uno solo. Ma se il campo e' "veramente" un varchar non deve fare alcun casting sul numero ma inserire la stringa cosi' come gliela passi .... potrebbe essere causato dall'impostazione del MODE SQL ma se la metti tra apici DEVE interpretarla come stringa comunque.

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

  7. #7
    ad esempio fa così: +39.334.1234567

    sempre da phpmyadmin, se lo metto tra apici non fa trasformazioni.
    però mi salva il valore con gli apici '+393341234567'.
    il che non lo trovo corretto.
    forse è più un problema di MODE SQL come dici.
    cosa potrei controllare??

  8. #8
    fammi capire: tu scrivi +393341234567 e mysql inserisce +39.334.1234567? già in tabella?

  9. #9
    si esattamente.
    ho provato con una query "a mano", tramite phpmyadmin e tramite php.
    in ogni caso ottengo quel risultato.
    a meno che non metto gli apici, ma sarebbe cmq sbagliato perchè non esiste un numero di telefono con gli apici.

  10. #10
    formattazione automatica e capisce pure dove mettere i punti: prefisso internazionale punto prefisso locale punto numero!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.