时间:2017-11-18 05:41:15

标签: php mysqli mysql-real-escape-string

我正在为一些奇怪的事情而苦苦挣扎。我在一个函数上运行mysqli :: real_escape_string来准备一个SQL语句。我从一个数据库获取数据并开发查询以将其插入到不同服务器上的数据库中。

我得到的错误信息是:

致命错误:未捕获错误:调用数组中的成员函数real_escape_string()...

我尝试在调用real_escape_string()之前记录一个is_array()函数,并确认它不是一个数组。无论我传入数字还是字符串值,我都会得到这个。我想也许这是一个编码问题,但我不知道如何处理这些问题。我之前尝试过将其转换,但这也无效:

$str = $row[$key];                     // Tried on two strings '1' (is_numeric = True), and 'Kevin'
is_array( $str );                      // Returns False
$str = mb_convert_encoding($row[$key], 'UTF-8');    // Consequently, also tried 'latin1' with the same result.
$db->real_escape_string( $str ); 

那也没用,仍然是返回数组错误。

关于尝试什么的任何其他建议?

感谢。

2 个答案:

答案 0 :(得分:1)

这个错误意味着你的$ db是数组,而不是函数的参数

答案 1 :(得分:-1)

使用函数var_dump()

检查变量
var_dump($str);