Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Inserire apostrofo in campo db

    In una pagina php devo copiare i dati di un database in un'altro database.

    Questa query banale mi funziona correttamente:

    codice:
    $sql = "INSERT INTO clienti (idgestionale, cliente) VALUES ($row->CF_ID , '$row->CF_RAGS1')";
    Se però il campo CF_RAGS1 contiene un apostrofo giustamente mi va in errore.

    A me andrebbe bene sia eliminare l'apostrofo, ma ancora meglio riuscirlo ad inserire.

    Grazie

  2. #2
    raddoppialo es: l''aquila

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Passa $sql a mysqli_real_escape_string() prima di eseguire la query.

  4. #4
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Grazie alla fine ho risolto così:
    codice:
    $nome= $row->CF_RAGS1;
       $nome=addslashes($nome);

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ti consiglio mysqli_real_escape_string() è specifica per le query, ti risolve anche altri potenziali conflitti oltre agli apostrofi.

  6. #6
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Grazie... sono in fase di test posso provare anche quello!
    Che differenze hanno?
    Per la precisione io sto prendendo l'elenco clienti dal db interbase del mio gestionale e lo copio su un mysql, quindi esesndo due db differenti potrei avere altri problemi che non ho ancora incontrato.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    La differenza è che addslashes() aggiunge solo il carattere di escape \ dove serve, mysqli_real_escape_string() controlla la stringa e la rende adatta all'esecuzione di una query.

    Quando si hanno dubbi del genere, è sempre bene consultare la documentazione: mysqli_real_escape_string()

    cosa che andrebbe fatta tutte le volte che si usa una funzione che non si conosceva o di cui non si è sicuri di ciò che faccia.

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.