Discussions
Categories
- 196.8K All Categories
- 2.2K Data
- 239 Big Data Appliance
- 1.9K Data Science
- 450.3K Databases
- 221.7K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 550 MySQL Community Space
- 478 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 544 SQLcl
- 4K SQL Developer Data Modeler
- 187K SQL & PL/SQL
- 21.3K SQL Developer
- 295.8K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.5K Development Tools
- 107 DevOps
- 3.1K QA/Testing
- 646K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 155 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 18 Java Essentials
- 160 Java 8 Questions
- 86K Java Programming
- 80 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 204 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 439 LiveLabs
- 38 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 171 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 232 Portuguese
Strange problem with PHP and ODBC

Im axecuting a query against an database and I do have a different behaviour between executing via isql from the command line and via PHP.
The query:
SELECT | |
A.LFDNR, | |
A.ARTNR1, | |
A.ABEZ1, | |
A.ABEZ2, | |
A.ABEZ3, | |
G.AGRUPPE, | |
O.LBEZ1, | |
L.PHYBEST, | |
L.LFDARTNR, | |
M.MINWERT, | |
M.BESTWERT, | |
L.PHYBEST*A.EKPR/A.PREISKENNZ as WERT, | |
B.SBMG, B.SBMG*A.EKPR/A.PREISKENNZ as BWERT |
FROM
KW.LAGER L, | |||
KW.ARTIKEL A, | |||
KW.LAGERORT O, | |||
SYSADM.AGRUPPE G, | |||
SYSADM.LGMINBEST M, | |||
( | |||
SELECT | |||
MANDANT, | |||
ARTNR, | |||
SUM(BESTMENGE) as SBMG | |||
FROM | |||
KW.BESTELLUNG | |||
WHERE | |||
BESTSTATUS = '3' | |||
GROUP BY | |||
MANDANT, | |||
ARTNR | |||
) B |
WHERE
A.LFDNR = L.LFDARTNR AND | ||
A.MANDANT = L.MANDANT AND | ||
A.AGRUPNR = G.LFDNR AND | ||
L.LFDARTNR = M.LFDARTNR(+) AND | ||
L.MANDANT = M.MANDANT(+) AND | ||
A.LFDNR = B.ARTNR(+) AND | ||
A.MANDANT = B.MANDANT(+) AND | ||
L.LFDLAGNR = O.LFDNR(+) AND | ||
G.AGRUPPE = 'GLASU' AND | ||
( | ||
B.SBMG <> 0 or | ||
L.PHYBEST <> 0 or | ||
M.MINWERT <> 0 or | ||
M.BESTWERT <> 0 | ||
) | ||
AND | ||
A.LFDNR = L.LFDARTNR |
ORDER BY
A.ABEZ1; |
Works fine either way. As soon as I enter the field A.MANDANT in the select statement:
SELECT | |
A.MANDANT, | |
A.LFDNR, | |
A.ARTNR1, | |
A.ABEZ1, | |
A.ABEZ2, | |
A.ABEZ3, | |
G.AGRUPPE, | |
O.LBEZ1, | |
L.PHYBEST, | |
L.LFDARTNR, | |
M.MINWERT, | |
M.BESTWERT, | |
L.PHYBEST*A.EKPR/A.PREISKENNZ as WERT, | |
B.SBMG, B.SBMG*A.EKPR/A.PREISKENNZ as BWERT |
FROM
KW.LAGER L, | |||
KW.ARTIKEL A, | |||
KW.LAGERORT O, | |||
SYSADM.AGRUPPE G, | |||
SYSADM.LGMINBEST M, | |||
( | |||
SELECT | |||
MANDANT, | |||
ARTNR, | |||
SUM(BESTMENGE) as SBMG | |||
FROM | |||
KW.BESTELLUNG | |||
WHERE | |||
BESTSTATUS = '3' | |||
GROUP BY | |||
MANDANT, | |||
ARTNR | |||
) B |
WHERE
A.LFDNR = L.LFDARTNR AND | ||
A.MANDANT = L.MANDANT AND | ||
A.AGRUPNR = G.LFDNR AND | ||
L.LFDARTNR = M.LFDARTNR(+) AND | ||
L.MANDANT = M.MANDANT(+) AND | ||
A.LFDNR = B.ARTNR(+) AND | ||
A.MANDANT = B.MANDANT(+) AND | ||
L.LFDLAGNR = O.LFDNR(+) AND | ||
G.AGRUPPE = 'GLASU' AND | ||
( | ||
B.SBMG <> 0 or | ||
L.PHYBEST <> 0 or | ||
M.MINWERT <> 0 or | ||
M.BESTWERT <> 0 | ||
) | ||
AND | ||
A.LFDNR = L.LFDARTNR |
ORDER BY
A.ABEZ1; |
The query works fine if I execute it via isql in the command line but fails in PHP without an error. It just returns an empty result set.
I'm using the 12.1 Linux client
Server Version is 10.2.0
Answers
-
so what does your php code look like?...
and isql? unixODBC iSQL?!!
Run the sql you posted in sqlplus and show us the result.
It would also help immensly if you simplified your above example, showing the issue, and formatted it too so it is easier to read.
(To format with fixed font, syntax highlighting etc, click on the "Advanced formatting link, top right of post).
-
Other than the suggestions from @Gaz in Oz, I would recommend ditching the ODBC driver and using PHP OCI8.