SQL-Abfrage an ODBC liefert kein Ergebnis

vogtländer

Erfahrenes Mitglied
Hallo Leute,

ich steh mal wieder auf dem Schlauch.

Ich will mit einem PHP-Script auf eine Sybase SQL DB via ODBC zugreifen, doch dabei schlagen alle SQL-Anfrage, die komplizierter sind als "SELECT Feld FROM Tabelle" fehl. Soll heißen, ich erhalte kein Ergebnis, schon wenn ich eine WHERE-Klausel verwende.
PHP:
<?php
	$connection_id = odbc_connect('DB','USER','PASSWD');
	
	$sql = "SELECT Kundennr FROM Kunden WHERE ID = 1988";
	$result = odbc_exec($connection_id,$sql);
	
	$num_rows = odbc_num_rows($result);
	
	for( $i=0 ; $i<$num_rows ; $i++ )
	{
		$row = odbc_fetch_array($result);
		echo $row."<br>";
	}		
?>

Die SQL-Abfrage ist offenbar richtig, denn ein passendes DB-Tool liefert das gewünschte Ergebnis. Mein PHP-Script erhält aber leere Felder als Ergebnis bzw. $num_rows = -16543.

Hat da jemand ne Idee, woran das liegen kann?

Besten Dank schonmal.
 
Nachtrag:

Offenbar habe ich einen Denkfehler bzgl. der PHP-Anweisungen, denn mit odbc_result() kann ich die Ergebnisse schrittweise auslesen, es werden also keine leeren Felder geliefert.

Trotzdem würde mich interessieren, was ich tun muss, um die Ergebnisse auf die von MySQL bekannte Weise, also so ähnlich wie in meinem Code-Schnipsel auszulesen.

Vielleicht hat da jemand ne Idee.
 
Hab das Problem bereits selbst behoben.

Es ist ein Problem vieler ODBC-Treiber. Hab meinen Code geändert:

PHP:
<?php
    $connection_id = odbc_connect('DB','USER','PASSWD');
    
    $sql = "SELECT Kundennr FROM Kunden WHERE ID = 1988";
    $result = odbc_exec($connection_id,$sql);
    
    while( $row = odbc_fetch_array($result) )
    {
        echo $row."<br>";
    }        
?>

So klappt alles.

Sorry, dass ich mich nicht an die Maxime "Esrt suchen, dann posten" gehalten habe, aber vielleicht hilft das mal jemandem.

Gruß.
 
Zurück