2015-01-10 10 views
6

Sto eseguendo un'app Web in codeigniter in esecuzione sul server. Qui ho un modulo di registrazione utente, che funziona bene in localhost. Ma quando si tratta di server quando provo a registrare un utente, la mia pagina mostra l'errore:La funzione mysql_escape_string() è deprecata uso mysql_real_escape_string() Codeigniter

mysql_escape_string() function is deprecated use mysql_real_escape_string() in mysql/mysql_driver

Ho provato a cambiare la mia pagina mysql_driver ma dopo aver cambiato tutto va vuota. Qualcuno può aiutarmi a risolvere questo errore?

+0

hai provato l'aggiornamento codeigniter – chiliNUT

+0

sia le funzioni di uso deprecato [ '' mysqli_ *] (http://php.net/manual /en/class.mysqli.php) – Girish

+0

Sto usando l'ultima versione di codeigniter – Aishwaryas

risposta

9

Se si utilizza PHP 5.4 la funzione mysql_escape_string() è deprecated.So è necessario fare alcuni cambiamenti nel driver MySQL file.Go al sistema \ Database \ drivers \ mysql \ mysql_driver.php e trovare la funzione e sostituire il codice funzioni con questo codice:

/** 
    * Escape String 
    * 
    * @param string 
    * @param bool whether or not the string will be used in a LIKE condition 
    * @return string 
    */ 
public function escape_str($str, $like = FALSE) 
{ 
    if (is_array($str)) 
    { 
    foreach ($str as $key => $val) 
     { 
    $str[$key] = $this->escape_str($val, $like); 
     } 

     return $str; 
    } 

    $str = is_resource($this->conn_id) ? mysql_real_escape_string($str, $this->conn_id) : addslashes($str); 

    // escape LIKE condition wildcards 
    if ($like === TRUE) 
    { 
    return str_replace(array($this->_like_escape_chr, '%', '_'), 
     array($this->_like_escape_chr.$this->_like_escape_chr, $this->_like_escape_chr.'%', $this->_like_escape_chr.'_'), 
     $str); 
    } 

    return $str; 
} 

può aiutare a ...

+0

Ho provato come dicevi e funziona bene ora. Grazie! – Aishwaryas

+0

siete i benvenuti :) –

Problemi correlati