Level 54
didn't really look in to your query but you may try something like:
-->DB::raw( ... )
->select(DB::raw( ... ))
->selectRaw( ... )
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
hi, i have this query
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'max(case when tahun = ''',
tahun,
''' then target end) tahun'
)
)
INTO @sql
FROM
renstra_indikator;
SET @sql = CONCAT('SELECT b.start_periode,b.end_periode,d.desc_renstra tujuan, e.desc_renstra sasaran,c.desc_renstra indikator, f.desc_satuan satuan, ',
@sql, '
FROM renstra_periode b
left join m_renstra d on b.id_tujuan = d.id_renstra
left join m_renstra e on b.id_sasaran = e.id_renstra
left join renstra_indikator a on a.id_seq_periode = b.id_seq
left join m_renstra c on a.id_indikator = c.id_renstra
left join m_satuan f on c.id_satuan = f.id_satuan');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
and i want to put this query in controller, then become like this
$renstra = DB::select("SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'max(case when tahun = ''',
tahun,
''' then target end) tahun'
)
)
INTO @sql
FROM
renstra_indikator;
SET @sql = CONCAT('SELECT b.start_periode,b.end_periode,d.desc_renstra tujuan, e.desc_renstra sasaran,c.desc_renstra indikator, f.desc_satuan satuan, ',
@sql, '
FROM renstra_periode b
left join m_renstra d on b.id_tujuan = d.id_renstra
left join m_renstra e on b.id_sasaran = e.id_renstra
left join renstra_indikator a on a.id_seq_periode = b.id_seq
left join m_renstra c on a.id_indikator = c.id_renstra
left join m_satuan f on c.id_satuan = f.id_satuan ');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;");
return response()->json($renstra);
and when i run then show up this error
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use
but when i run on mysql editor is not problem, and result show well. so what should i do...please help me to solve this. thanks before.
hi, i solved my problem with created procedure for my query then called with this
DB::select("call LapRenstra('".$periode."')")
thanks..
Please or to participate in this conversation.