Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Codificare stringa sql

  1. #1

    Codificare stringa sql

    Ciao,
    sto provando a costruire una funzione che mi permetta di codificare con mysqli_real_escape_string ogni variabile passata nella stringa sql. Qualcuno ha in mente come si potrebbe fare?

    Saluti,
    carlostefano

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    beh, se il tuo problema è la connessione al db, senza fare la tua funzioncina utilizza semplicemente mysql_escape_string($variabile), e tutto si risolve...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    ciao,
    il fatto è che con la funzioncina si potrebbero codificare tutte le variabili immesse nella stringa di query senza doverle passare ad una ad una con la funzione di mysql. Sarebbe molto più comodo.

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    e come la chiami?

    $query=for_query("SELECT * FROM tabella WHERE nome='antonio'");

    passata così ti darebbe errore perchè la funzione ti metterebbe le \ anche dove servono veramente alla query gli apici....
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    io pensavo di risolvere in questa maniera:

    str_sql = "select * from mytabella where myfield = '$myvar'";

    str_sql = encodeVariables(str_sql);



    la funzione avrebbe il compito di individuare le variabili all'interno della stringa (quindi in questo caso $myvar) è codificarne il contenuto. A tale scopo ci andrebbe una regex che le indivui ed esegua la funzione mysql su die esse. Io ho provato a farlo ma non ci sono riuscito.

  6. #6
    allora...
    sto cercando di costruirmi sta benedetta funzioncina.

    Tanto per cominciare si devono spilittare tutte le parole in un array. A tale scopo ho pensato di usare preg_split:


    codice:
    $str_sql =  "SELECT * FROM customers WHERE mMiao='ciao'"
    
    
    $arr_sql = preg_split("#\b#", $str_sql);
    Non so perchè però mi mette una posizione in più nell'array, la numero 4.

    qualcuno può provare a fare

    codice:
    foreach($arr_sql as $key =>$value){
    		
    			echo $key . $value;
    		
    		}
    e dirmi cosa gli salta fuori?

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.