|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2020-12-15 20:37 UTC] delmar dot delmar at gmail dot com
Description:
------------
The sample code works in version 7.4.12. After upgrading to PHP 8.0.0 it stopped working.
The error message is: object (PDOException) # 3 (8) {["message": protected] => string (118) "SQLSTATE [HY000]: General error: -104 Dynamic SQL Error SQL error code = -104 Token unknown ...
PHP does not recognize the parameter COD_ALUNO =: PCOD_ALUNO in nested SQLs for derived tables (select from select).
When setting an integer for the COD_ALUNO field everything works.
https://firebirdsql.org/refdocs/langrefupd21-select.html#langrefupd21-derived-tables
Test script:
---------------
https://pastebin.com/1n32Yct4
Expected result:
----------------
As JSON
[{"CODIGO":"2118","COD_CURSO":"3","CURSO":"EDUCA\u00c7\u00c3O DE JOVENS E ADULTOS"},{"CODIGO":"977","COD_CURSO":"1","CURSO":"ENSINO FUNDAMENTAL"},{"CODIGO":"2808","COD_CURSO":"1","CURSO":"ENSINO FUNDAMENTAL"},{"CODIGO":"6555","COD_CURSO":"1","CURSO":"ENSINO FUNDAMENTAL"}]
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 23:00:02 2025 UTC |
Contents of the pastebin: <?php $sql = ' SELECT MAT.CODIGO, MAT.COD_CURSO, MAT.CURSO FROM (SELECT M.CODIGO, M.COD_CURSO, C.CURSO FROM (SELECT CODIGO, COD_CURSO FROM MATRICULA WHERE COD_ALUNO = :PCOD_ALUNO) AS M LEFT OUTER JOIN CURSO C ON M.COD_CURSO = C.CODIGO UNION SELECT ME.CODIGO, ME.COD_CURSO, C.CURSO FROM (SELECT CODIGO, COD_CURSO FROM MATRICULAEJA WHERE COD_ALUNO = :PCOD_ALUNO_EJA) AS ME LEFT OUTER JOIN CURSO C ON ME.COD_CURSO = C.CODIGO) AS MAT ORDER BY MAT.CURSO'; ?>