2016-07-13 51 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

如果是这样的话,我不应该得到一个致命的错误,脚本应该失败吗?一切似乎都在发挥作用,只是带着警告。我应该补充一点,我很感谢你的帮助! –

相关问题