Reputation: 185
So i have this query on my laravel model to be called in my controller
model:
public static function predikat($masa, $ipk_yudisium){
$searchFilter = DB::select(DB::raw("SELECT
m_predikat_yudisium.keterangan
FROM m_predikat_yudisium WHERE
m_predikat_yudisium.masa_awal_berlaku <= :masa and
m_predikat_yudisium.masa_akhir_berlaku >= :masa and
m_predikat_yudisium.range_awal_ipk <= :ipk_yudisium and
m_predikat_yudisium.range_akhir_ipk >= :ipk_yudisium and
m_predikat_yudisium.group_id = 1"),
array('masa' => $masa,
'ipk_yudisium' => $ipk_yudisium
)
)
;
foreach ($searchFilter as $predikat){
return $predikat;
}
$predikat = (object) array('keterangan' => "" );
return $predikat;
}
controller :
$masa = $request->input('masa');
$ipk_yudisium= $request->input('ipk_yudisium');
$predikat = $data->predikat($masa, $ipk_yudisium); //$data is my model called name
but i cant execute that query, it got an error message saying :
SQLSTATE[HY093]: Invalid parameter number (SQL: SELECT m_predikat_yudisium.keterangan
FROM m_predikat_yudisium WHERE
m_predikat_yudisium.masa_awal_berlaku <= :masa and
m_predikat_yudisium.masa_akhir_berlaku >= :masa and
m_predikat_yudisium.range_awal_ipk <= :ipk_yudisium and
m_predikat_yudisium.range_akhir_ipk >= :ipk_yudisium and
m_predikat_yudisium.group_id = 1)
what is wrong? thanks
Upvotes: 5
Views: 7507
Reputation: 94662
You cannot use the same parameter name more than once, so try something like this
$searchFilter = DB::select(DB::raw("SELECT
m_predikat_yudisium.keterangan
FROM m_predikat_yudisium
WHERE
m_predikat_yudisium.masa_awal_berlaku <= :masa and
m_predikat_yudisium.masa_akhir_berlaku >= :masa1 and
m_predikat_yudisium.range_awal_ipk <= :ipk_yudisium and
m_predikat_yudisium.range_akhir_ipk >= :ipk_yudisium1 and
m_predikat_yudisium.group_id = 1"),
array('masa' => $masa,
'masa1' => $masa,
'ipk_yudisium' => $ipk_yudisium,
'ipk_yudisium1' => $ipk_yudisium
)
)
Upvotes: 8