Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Datenbankabfrage mittels PHP auf MS SQL Server bringt falsche Daten zurück

Frage Entwicklung PHP

Mitglied: KgFmB

KgFmB (Level 1) - Jetzt verbinden

01.03.2007, aktualisiert 28.04.2007, 8060 Aufrufe, 4 Kommentare

Hierbei handelt es sich um ein seltsamens Phänomen

Hallo zusammen,

hab mal wieder etwas, woran ich mir seit einiger Zeit die Zähne ausbeisse.
Vielleicht kann mir einer von euch helfen.

Folgendes:

Schreib an einer PHP-Anwendung, die Daten aus einer Microsoft SQL Datenbank bezieht.
Nun kommt es vor, das ich bei einigen Fällen bei einem Select mit Count(ID) eine Falsche Anzahl zurückbekomme,
und bei anderen Fällen auch nur einen statt meherer Datensätze zurückbekomme.

Hier ein kleiner Ausschnitt.

$sql = "Select * FROM Sperrliste WHERE bDeleted = 0";
$sql =$sql.$sql_zusatz; Anfügen des 'sql_zusatz' zur Filterung
$sql =$sql." order by ";
Sortierung an den SQL anhängen
$sql =$sql.$sSortieren;

$daten = odbc_exec($connect, $sql); // SQL ausführen und Daten von der Datenbank holen

Mein SQL sieht dann wie folgt aus:
echo "SQL: ".$sql;

Select * FROM Sperrliste WHERE bDeleted = 0 AND Nacharbeitsfestlegung like '%nachrüsten%' order by ID

Die aus der Datenbank zurückerhaltenden Daten stelle ich in einer Tabelle dar.
Nur, ich erhalte keinen einzigen Datensatz zurück. Hingegen, wenn ich den SQL im Query Analyzer starte,
bekomme ich über 400 Datensätze, was auch korrekt ist.

Ein ähnliches Phänomen hab ich, wenn ich die Sache nun mit einem Count(ID) versehe.

Select Count(ID) as Anzahl FROM Sperrliste WHERE bDeleted = 0 AND Nacharbeitsfestlegung like '%nachrüsten%'
Dann erhalte ich ebenfalls keinen Datensatz zurück.
Jedoch wieder im Query Analyzer gestarte über 400.

Und nun zur Krönung meiner Versuche.
Suche ich nach einem anderen Wert, z. B. "Tor" erhalte ich genau die Anzahl aus der Datenbank, die auch tatsächlich in der Datenbank sich befinden.

Meine erste Theorie, es handele sich hier um ein Umlaut Problem "ä", "ö", "ü" etc.
kann ich nicht ganz beweisen, da ich Erfolge hatte bei ähnlichen SQL mit Umlauten.

Hat irgendjemand eine Idee??

Mit freundlichen Grüßen
KgFmB
Mitglied: KgFmB
01.03.2007 um 09:49 Uhr
So kleiner Nachtrag:

Hab in dem Feld mal nach dem Wort "umrüsten" gesucht.
Er findet nur einen Datensatz, obwohl in der Datenbank 88 Datensätze vorhanden sind.

So nun hab ich mal alle Datensätze per Update ersetzt und zwar durch "umruesten"
und siehe da. Meine Abfrage von PHP bringt mir alle 88 Datensätze zurück.

Gegenprobe:
Wieder umgestellt auf "umrüsten", das Ergebnis ist wieder nur ein Datensatz.

Also muss es doch mit Umlaute und PHP handeln.
Muss ich in der PHP.INI irgendeinen Eintrag ändern, damit ich auch Umlaute verarbeiten kann.

Wie gesagt, seltsam ist nur, das ich in einem anderen Feld ein Wort wie "bürnen" alle Datensätze aus der Datenbank finde.

Gruß
KgFmB
Bitte warten ..
Mitglied: KgFmB
01.03.2007 um 11:26 Uhr
Ich glaub, ich habe es:

folgendes hatte ich im PHP Code

<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Durch suche in alten ASP.Seiten von Kollegen stiess ich auf folgendes:

<meta http-equiv="Content-Type" content="0" />

Na gut dacht ich mir so, probieren über studieren...

Und siehe da, es funktioniert.
Ich bekomm exakt die Datensätze aus der Datenbank, nach denen ich suche.

Nun stellt sich mir die Frage.
Ist es ein Glückstreffer, oder hab ich durch Zufall die Lösung gefunden?

Vielleicht kann mir ja jemand das bestättigen, das dies die Lösung ist.

Gruß

KgFmB
Bitte warten ..
Mitglied: Dani
02.03.2007 um 00:14 Uhr
G' Abend,
das kannst du doch ganz einfach testen. Such nach einem Wort mit Umlauten. Zuvor entferne aus dem PHP-Dokument die eingefügt Zeile. Such einmal über PHP und danach mit deinem Tool. Dann die Zeile wieder einfügen und wieder mit PHP und dem Tool checken. Somit merkst du schnell, ob's stimmt.


Grüße
Dani
Bitte warten ..
Mitglied: Dani
28.04.2007 um 17:13 Uhr
Hi,
wie ist nun der Status deines Problems??


Gruß
Dani
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Datenbanken
MS-SQL-Server + T-SQL+Batch (4)

Frage von kallewirsch zum Thema Datenbanken ...

Datenbanken
gelöst Empfehlung für Festplatten-Konfiguration bei MS SQL Server (3)

Frage von BeSt zum Thema Datenbanken ...

Windows Server
gelöst MS-SQL Server lokale Authentifizierung - Logging (5)

Frage von ThomasAnderson zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...