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

    Salvare l'escape \ sul Db

    Salve a tutti,
    mi scuso se la domanda può essere semplice o scontata ma riesco a studiare e sperimentare con PHP solo nel tempo libero quindi mi rendo conto di poter chiedere qualcosa di banale

    Nella memorizzazione di Stringhe nel Db Mysql eseguo la function mysql_escape_string() per effettuare l'escape.

    A questo punto ho capito che se ho una stringa da memorizzare con apice ad esempio 'Via dell'Almone' , l'escape me la trasforma in 'Via dell\'Almone' per evitare problemi in fase di insert.


    A questo punto però non mi aspettavo di non trovare il carattere \ memorizzato anche nel Db (lo vedo da phpmyadmin) ma di trovare la stringa solo con l'apice 'via dell'almone' ;

    cioè è corretto che la stringa venga memorizzata anche nel dv con il carattere di escape? se devo fare un export del database o una migrazione a altro database avrò queste stringhe memorizzate con il \ ?

    Grazie a chi potrà chiarire questa semplice domanda
    aLESSANDRO

  2. #2
    Io non ho mai avuto problemi simili, ho sempre passato semplicemente le stringhe, e tutto va bene
    La differenza fra la genialità e la stupidità è che la genialità ha i suoi limiti.


  3. #3
    E' colpa di una delle peggiori idee dei creatori di PHP: le magic quotes. In sostanza, se e' attiva quella direttiva, PHP mette automaticamente un backslash davanti agli apici, col risultato che usando mysql_real_escape_string gli apici vengono preceduti da DUE backslash.

    Maggiori info su: http://php.net/manual/en/function.ge...quotes-gpc.php

  4. #4
    mi hai battuto sul tempo...

    stavo rispondendomi da solo..

    praticamente sul mio localhost sono a OFF

    mentre sul server sono a ON


    ..ho fatto quindi una stripslashes prima del mysql_real_escape_string e infatti è OK..

    come ci si comporta in questi casi?

    una IF se le magic quotes sono attivate o meno??

    Grazie

  5. #5
    Originariamente inviato da furbostandby
    Io non ho mai avuto problemi simili, ho sempre passato semplicemente le stringhe, e tutto va bene
    il peggior consiglio che si possa dare.

    Gli escape all'interno del db ci sono ed è del tutto normale date che in fase di insert TRAMITE QUERY IN PHP filtri gli input con mysql_real_escape_string()

    lo scopo dell'escape è unicamente quello di evitare che le query assumano una sintassi errata o, peggio, un significato diverso da quella "originale"...
    tieni presente che per php una query("SELECT * FROM table") non è altro che una stringa e pertanto viene trattata come tale...
    mentre per MySql quella stringa in realtà è un comando...

    per capre con un esempio leggi
    http://www.mtxweb.ch/php_learn/?p=864

  6. #6
    Originariamente inviato da ale.spad
    una IF se le magic quotes sono attivate o meno??
    Si, per essere sicuri che il codice funzioni indipendentemente dalle impostazioni del server e' l'unica soluzione affidabile.

  7. #7

  8. #8
    bellissima

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.