2014-09-22 33 views
-1

我知道,在堆棧中,存在着大量的與此相關的問題..但我沒有發現我的答案array_map和mysqli_real_escape_string

我試着去創建一個返回POST值的數組功能。而我是一個陣列地圖上收到錯誤:

function clean_the_data ($data) { 
    if (is_array($data)) { 
     $data = array_map("trim", $data); 
     if (get_magic_quotes_gpc()) { $data = array_map("stripslashes", $data); } 


     $data = array_map($data, array($this->mysqli(), 'real_escape_string')); 
    }else{ 
     $data = trim($data); 
     $data = stripslashes($data); 

     $data= $this->mysqli->real_escape_string($data); 

    } 
    return $data; 
} 

在行

$data = array_map($data, array($this->mysqli(), 'real_escape_string')); 

我不是得到這個...

感謝您的時間

+0

老實說,大多數代碼是毫無意義的/沒用。您正在編寫處理PHP配置和版本的代碼,甚至不符合「石器時代」的標準。不要試圖補償魔術引號 - 任何人仍然運行啓用了PHP的魔術引號版本應該是他們所遭受的所有痛苦。而且,在沒有任何數據將被使用的意識的情況下盲目地轉換sql,也是毫無意義的。 – 2014-09-22 21:12:58

+0

感謝您的回答..但是,這個的主要目標是改變所有功能......並且提示會更好。但是,無論如何,謝謝 – user3587262 2014-09-22 22:23:48

回答

-2

我發現這在PHP網站上: http://php.net/manual/en/pdo.prepared-statements.php

我正在做準備狀態ments,它更安全嗎?

另外,我更新了我的功能:

function clean_the_data ($data) { 
    if (is_array($data)) { 
     $data = array_map($data, array($this->mysqli(), 'real_escape_string')); 
    }else{ 
     $data= $this->mysqli->real_escape_string($data); 
    } 
    return $data; 
}