如何修复此错误:'SQLSTATE:无效的参数号”
P粉364129744
P粉364129744 2024-03-31 22:08:47
0
2
328

我尝试了很多方法,但没有修复这个错误,我该怎么办?

有代码

控制器

$ticketId = Tickets::get('id');

$assig_user_name = DB::table('tickets')
        ->join('users', 'tickets.assigned_id', '=', 'users.id')
        ->select('users.id','users.name')
        ->where('tickets.id', '=', $ticketId)
        ->get();

当我添加 $ticketId 时,它可以工作并显示 id 是我想要的,但在加入时它不起作用。

P粉364129744
P粉364129744

全部回复(2)
P粉289775043

$ticketId 返回集合,如果您试图获取所有拥有票证的用户,那么在这种情况下您可以执行类似的操作

$ticketId = Tickets::select('id')->get();

$assig_user_name = DB::table('tickets')
        ->join('users', 'tickets.assigned_id', '=', 'users.id')
        ->select('users.id','users.name')
        ->wherein('tickets.id',[$ticketId])
        ->get();
P粉309989673

SQLSTATE[HY093]:无效的参数编号通常表示您在查询中提供了错误数量的占位符,并且占位符的数量与您尝试绑定到这些占位符的值的数量之间存在不匹配.

您可以尝试:

$assig_user_name = DB::table('tickets')
        ->join('users', 'tickets.assigned_id', '=', 'users.id')
        ->select('users.id','users.name')
        ->where('tickets.id', '=', ':ticketId')
        ->setBindings([':ticketId' => $ticketId])
        ->get();

另一个问题可能是 $ticketId 是一个数组,因此您需要:

$assig_user_name = DB::table('tickets')
        ->join('users', 'tickets.assigned_id', '=', 'users.id')
        ->select('users.id','users.name', 'tickets.*')
        ->whereIn('tickets.id', $ticketId->pluck('id')->toArray())
        ->get();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!