Slash in tabelnaam

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arno Verkleij

Arno Verkleij

13/10/2014 17:33:12
Quote Anchor link
Allen,

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 " );
}

while(odbc_fetch_row($rs)){
$nummer=odbc_result($rs,1);
echo $nummer;
}

Groeten Arno
 
PHP hulp

PHP hulp

16/11/2024 19:35:47
 
- SanThe -

- SanThe -

13/10/2014 17:56:13
Quote Anchor link
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`
 
Willem vp

Willem vp

13/10/2014 22:12:53
Quote Anchor link
De truuk met de `` werkt alleen bij MySQL. Aangezien het hier een ODBC-koppeling betreft, zou het me niks verbazen als dat ERP-pakket MSSQL gebruikt.

In dat geval kun je escapen met [], dus: select * from [D/L_Kop]
 
Arno Verkleij

Arno Verkleij

14/10/2014 09:36:50
Quote Anchor link
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..
 
Willem vp

Willem vp

14/10/2014 10:15:45
Quote Anchor link
Uit de SQL Engine Reference van Pervasive:
Quote:
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.
 
Arno Verkleij

Arno Verkleij

14/10/2014 10:25:17
Quote Anchor link
Willem,

Deze suggestie klopt... Ik heb het nu werkend. Had me eigenlijk nog niet verdiept in de Pervasive tabel..

Dank voor de hulp in ieder geval, ik kan weer verder.

Overigens zou ik zelf nooit dit soort tekens in database, tabel of veldnamen gebruiken, maar dat is weer een heel ander verhaal ;o)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.