MS Sql Datenbankabfrage

dreggert

Mitglied
Hi

Brüte momentan über ein Problem mit einer Datenbankabfrage. Ich habe eine Abfrage für MYSQL gebaut. Nun hat sich aber der Auftraggeber dazu entschieden auf MS SQL umzusteigen grrr. Nun muss ich alles Abfragen anpassen. Nun meine Schwierigkeit:

Ich habe folgenden Code:
PHP:
$sql_test="SELECT keyword_katName FROM dbo.keyword_kat_nr ORDER BY keyword_katName";
$res_test= sqlsrv_query($conn, $sql_test);

while($row = sqlsrv_fetch_array( $res_test))
{
      //echo $row['keyword_katID'].", ".$row['keyword_katName']."<br>";
      echo $row['keyword_katName']."<br>";

Hier erhalte ich dann die Meldung:
Warning: sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given in E:\wissensdb\test\test2.php on line 15

Lasse ich das Order BY weg, klappt die Abfrage ohne Fehlermeldung. Kann mir jemand einen Tipp geben?
 
Hi,

Das ist ein zeichen dafür, dass dein Query fehl schlug. Lass dir doch mal die Fehlermeldung ausgeben:

Nach der Zeile
PHP:
$res_test= sqlsrv_query($conn, $sql_test);
fügst du einfach das ein:
PHP:
if($res_test === false ) {
     die( print_r( sqlsrv_errors(), true));
}
 
Ich hab das mal so ausgeführt. Bekomme folgende Fehlermeldung:
Code:
Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 306 [ code ] => 306 [2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. ) )
 
Und da hast du dann ja auch deine Antwort
Code:
Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 306 [ code ] => 306 [2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. ) )
 
gut, aber das hilft mir nun auch nicht so wirklich, da die Spalten nicht leer sind und die Abfrage funktioniert, wenn ich das ORDER BY weglasse.
 
Ich glaub ich hab den Grund gefunden. Er kann mit dem DataTyp nicht TEXT nichts anfangen. Werde morgen mal auf VARCHAR umsteigen. und dann nochmal teste.

Danke erstmal für deine Hilfe.
 
Zurück