You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP implode()报错:Argument #2需为数组传入mysqli对象修复

PHP购物车订单提交页implode()致命错误修复

错误原因

抛出的TypeError明确指向implode()参数类型不匹配:函数第二个参数要求传入数组,实际拿到的是mysqli数据库连接对象。
问题出在你代码第150行的implode()调用参数顺序完全写反:

  • 你当前运行的代码写的是$update_string = implode($updates,$cxn);
  • PHP中implode()的标准签名是implode(string $分隔符, array $待拼接数组),第一个参数传拼接用的分隔字符串,第二个参数才是要处理的数组
  • 你把数组$updates放在了第一个参数位,把mysqli连接对象$cxn放在了第二个参数位,自然触发类型错误。你之前尝试替换分隔符内容但没调整参数顺序,所以错误一直存在。

修复步骤

  • 定位到文件第150行,把错误的implode调用替换为参数顺序正确的写法:
// 修正后的代码
$update_string = implode(",", $updates);
  • 额外兼容性修复(必做,否则后续运行会报函数不存在错误):
    你代码中处理信用卡号的部分使用了PHP7及以上版本已完全移除的ereg_replace函数,替换为兼容的preg_replace即可:
// 注释掉原有两行废弃写法
// $value = ereg_replace(' ','',$value);
// $value = ereg_replace('-','',$value);
// 替换为以下写法
$value = preg_replace('/\s+/','',$value);
$value = preg_replace('/-/','',$value);

修改完成后重新提交订单,程序会正确拼接SQL更新语句,执行完成后正常展示订单汇总页面。

内容的提问来源于stack exchange,提问作者Clay Korth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 00:09:20