Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Collation MySql

  1. #1

    Collation MySql

    Salve, ho un problema. Io inserisco in una textarea un testo che se contiene i caratteri ' o \ mi manda in errore la query. Il linguaggio che uso è php, ma credo che il problema sia la collation da impostare in mysql. Attualmente ho utf8_unicode_ci e non funziona. Il tipo del campo è Text.

    Sapete aiutarmi?

  2. #2
    il carattere ' per l'sql (sia con mysql , che con atri RDBMS) è un carattere riservato come inizio e fine di una stringa. Se esso è a sua volta contenuto nella stringa sql da errore.
    Per evitare ciò e considerarlo solo come carattere devi raddoppiarlo facendo un replace da php di ' con '' nella stringa. LA \ NON credo dia problemi viceversa alla query. Forse più sul php in caso prova a raddoppiare anche quella.
    OUTSHINE '84

  3. #3
    ho risolto inserendo mysql_escape_string($nomeStringa)...è un comando di php che risolve questi tipi di errore dovuti dal fatto che l'apice (come ha detto Outshine84) è utilizzato per il commento di fine stringa.
    Comunque chi volesse utilizzare lo stesso mio comando deve fare attenzione xkè il mysql_escape_string() è deprecato nella versione 5.3.0 di php.

  4. #4
    In alternativa avresti potuto utilizzare il semplice carattere di escape, ovvero \ prima dei caratteri che ti davano problemi perchè tipici della sintassi SQL. L'aggiunta dei caratteri di escape può essere fatta in automatico tramite la funzione addslashes(). Nel momento in cui devi restituire all'utente il testo salvato, potrai rimuovere i backslash aggiunti in precedenza tramite la funzione stripslashes().
    PS: Un piccolo appunto: conviene sempre tenere sotto controllo i caratteri tipici della sintassi SQL, in quanto una loro errata gestione potrebbe causare grossi problemi di vulnerabilità, uno su tutti l'SQL injection. Stesso discorso vale per il cross site scripting. A tal proposito ti consiglio di dare un occhiata alla funzione html_specialchars().
    PPS: Tutte le funzioni da me elencate sono proprie del PHP.
    Ciao.
    Here Comes The Music Ecstasy

  5. #5
    grazie a tutti x i consigli

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.