Ik heb met PHP een ODBC koppeling gemaakt met een lokale DSN. Nu loop ik tegen het probleem aan dat de tabel die ik nodig heb een slahs in de naam heeft. Ik heb onderstaande code geprobeerd met andere tabelnamen zonder slashes erin en dat functioneert gewoon. De tabel in onderstaande code werkt echter niet. Is dit op te lossen en zo ja kan iemand mij vertellen hoe ?? Het betreft hier een koppeling met ons ERP pakket. Ik heb verder geen invloed op veldnamen e.d.
$sql = "Select * from D/L_Kop";
$rs=odbc_exec($conn,$sql);
if (!$rs) {
exit("mislukt " );
}
Een slash is een deelteken en hoort dus zeker niet in een (tabel)naam te zitten.
De oplossing is de slash vervangen door een underscore (_).
Mocht dat niet kunnen dan kan je misschien backtics gebruiken (links naast de 1).
Dus Select * from `D/L_Kop`
Dat de slash niet in de tabelnaam zou moeten zitten ben ik het direct mee eens, maar onze ERP leverancier heeft dit nu eenmaal zo gedaan. Ik kan daar niets aan veranderen helaas (althans niet met mijn toch ietwat beperkte kennis). De ERP leverancier gebruikt overigens Pervasive SQL voor zijn database. Die accepteert vermoedelijk wél slashes in de naam.
Beide escapes mogelijkheden werken bij mij helaas niet..
Column names and table names can occur as delimited identifiers if
they contain non-ODBC standard characters. The delimiter
character for delimited identifiers is a double-quote. For example:
SELECT "last-name" FROM "non-standard-tbl"
Dit suggereert dat 'select * from "D/L_Kop"' zou moeten werken.