cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk membetulkan ralat ini: "SQLSTATE: nombor parameter tidak sah"

Saya telah mencuba banyak kaedah tetapi tiada yang membetulkan ralat ini, apakah yang perlu saya lakukan?

Ada kod

Pengawal

$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();

Apabila saya menambah $ticketId ia berfungsi dan menunjukkan id adalah apa yang saya mahu tetapi apabila menyertai ia tidak berfungsi.

P粉364129744P粉364129744235 hari yang lalu346

membalas semua(2)saya akan balas

  • P粉289775043

    P粉2897750432024-04-01 21:17:27

    $ticketId mengembalikan koleksi, jika anda cuba mendapatkan semua pengguna yang mempunyai tiket maka dalam kes ini anda boleh melakukan sesuatu seperti

    $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();

    balas
    0
  • P粉309989673

    P粉3099896732024-04-01 12:33:37

    SQLSTATE[HY093]: Nombor parameter tidak sah biasanya bermakna anda memberikan bilangan ruang letak yang salah dalam pertanyaan dan terdapat ketidakpadanan antara bilangan ruang letak dan bilangan nilai yang anda cuba ikat dengan ruang letak tersebut.

    Anda boleh mencuba:

    $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();

    Masalah lain mungkin ialah $ticketId ialah array, jadi anda memerlukan:

    $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();

    balas
    0
  • Batalbalas