【问题标题】:Error "Array to string conversion in" with mysqli bind_param使用 mysqli bind_param 出现“数组到字符串转换”错误
【发布时间】:2017-11-11 09:03:02
【问题描述】:
$searchTerm = isset($_GET['txtSearch']) ? $_GET['txtSearch'] : '';
$searchTerm = strtolower($searchTerm);
$searchTerm = strip_tags($searchTerm);
$searchTerm = trim($searchTerm," "); 

$keywords = explode(" ",$searchTerm); // break down search term into individual keywords

$in = join(',', array_fill(0, count($keywords), '?'));
$select = <<<SQL
    SELECT * 
    FROM m_products
    WHERE product_title IN ($in);
SQL;
$statement = $con->prepare($select);
$statement->bind_param(str_repeat('s', count($$keywords)), ...$keywords); //s = string, d = double, i = integer
$statement->execute();

我从上面的代码中得到以下错误:

  • 注意:
  • 中的数组到字符串的转换
  • 注意:未定义变量:
  • 中的数组
  • 警告:mysqli_stmt::bind_param():类型无效或未指定类型

我该如何解决这个错误?

【问题讨论】:

  • $statement->bind_param(str_repeat('s', count($$keywords)), ...$keywords);有一个双 $$ 符号
  • 感谢我更正了双 $$ 符号,现在错误已解决。

标签: php arrays mysqli


【解决方案1】:

正如我在上面的 cmets 中所说的:

$statement->bind_param(str_repeat('s', count($$keywords)), ...$keywords); //s = string, d = double, i = integer

count($$keywords)) 中有一个双 $$ 删除一个 $ 并且应该解决该错误。

【讨论】:

    猜你喜欢
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2012-07-15
    相关资源
    最近更新 更多