2016-07-13 50 views
-5

我從PHP得到一個警告:PHP的警告:mysqli的:: real_escape_string()預計參數1是字符串數組給定

PHP的警告:mysqli的:: real_escape_string()預計參數1是字符串數組中給出..

給予警告的代碼是:

$saveData = array_map(array($connection, 'real_escape_string'), $saveData); 

$ SAVEDATA解碼JSON從$ _ POST採取的 - 典型的數據集將是:

array(22) { 
    ["quoteID"]=> 
    string(7) "GLY0YQ5" 
    ["Inventory"]=> 
    array(0) { 
    } 
    ["pickupLocation"]=> 
    string(15) "EPPING NSW 2121" 
    ["dropOffLocation"]=> 
    string(17) "RICHMOND VIC 3121" 
    ["pickupSuburb"]=> 
    string(6) "EPPING" 
    ["pickupPostcode"]=> 
    string(4) "2121" 
    ["pickupState"]=> 
    string(3) "NSW" 
    ["dropoffSuburb"]=> 
    string(8) "RICHMOND" 
    ["dropoffPostcode"]=> 
    string(4) "3121" 
    ["dropoffState"]=> 
    string(3) "VIC" 
    ["pickupLatitude"]=> 
    string(10) "-33.772549" 
    ["pickupLongitude"]=> 
    string(10) "151.082365" 
    ["dropoffLatitude"]=> 
    string(10) "-37.818587" 
    ["dropoffLongitude"]=> 
    string(10) "144.999181" 
    ["pickupDistance"]=> 
    string(1) "0" 
    ["pickupAccess"]=> 
    string(1) "0" 
    ["dropoffDistance"]=> 
    string(1) "0" 
    ["dropoffAccess"]=> 
    string(1) "0" 
    ["regionalLoading"]=> 
    string(1) "0" 
    ["totalVolume"]=> 
    string(2) "39" 
    ["totalDistance"]=> 
    string(3) "897" 
    ["totalPrice"]=> 
    string(4) "3120" 
} 

我的理解是問題mysqli期待的第一個參數是$connection變量,它實際上是,這是因爲通過array_map要求的格式的只是不同的到正規mysqli格式。

給定的期望的結果是real_escape一次拍攝整個陣列,並且該error只是一個warning和實際工作,有沒有更好的方式來做到這一點,是它甚至需要進行調整?

+0

什麼是$ saveData?它包含什麼值? – deceze

+0

@deceze - 現在我已經將'$ saveData'的典型故障添加到問題中了。 –

+0

順便說一句,你爲什麼仍然首先使用'real_escape_string'?改用準備好的語句! – deceze

回答

0
["Inventory"]=> 
    array(0) { 
    } 

你的問題是,你的數據包含數組,不能用mysqli::real_escape_string並觸發了警報進行轉義。在嘗試轉義它們之前,確保數組中的所有值都是標量值,而不是數組等複雜值。

+0

我不認爲這是問題,因爲我在運行它之前從數組中取消設置了該部分,所以絕對不是這樣。我現在已經從上面刪除..並道歉沒有立即看到。 –

+0

問題是'Inventory' **是一個數組**。無論是否爲空都沒關係。你正試圖執行'$ connection-> real_escape_string(array(...))',這是行不通的。 – deceze

+0

如果是這樣的話,我不應該得到一個致命的錯誤,腳本應該失敗嗎?一切似乎都在發揮作用,只是帶着警告。我應該補充一點,我很感謝你的幫助! –

相關問題