Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Keine Ergebnismenge bei mysql_query - wie möglich?

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Gesperrt
Benutzeravatar
Pauli
Newbie
Newbie
Beiträge: 10
Registriert: 16. Sep 2004, 08:56

Keine Ergebnismenge bei mysql_query - wie möglich?

Beitrag von Pauli »

Hallo lieber Leser,

habe frisch Suse 9.2 installiert mit PHP und MYSQL.
- PHP läuft prima.
- MYSQL läuft auch (der Server).
- Connect zur MYSQL-DB kommt zustande und "stribt" nicht.
- Die SQL, die auf anderen Servern problemlos läuft (am Screen ausgegeben enthält sie einen sauberen Query), gibt auch hier keine Fehlermeldung, aber ich bekomme keine Ergebnismenge - es ist zum Verzweifeln...

$ergebnismenge=mysql_query($sql);

$ergebnismenge ist hier "empty",
$row = mysql_fetch_array($ergebnismenge) geht also nicht mehr.

Die GLEICHE SELECT-Abfrage in der Shell eingegeben, ergibt die gewünschte Ausgabe!
Was kann das wohl sein?? - Es ist zum Haare raufen...

Wer weiss hier Rat?

Beste Grüße und schöne Weihnachtstage!

Pauli
LinuxOr
Newbie
Newbie
Beiträge: 35
Registriert: 9. Feb 2004, 15:45
Kontaktdaten:

Beitrag von LinuxOr »

ich kenn zwar das problem nicht aber ich denke mal die variablen werden nicht weiter geleitet und um das hin zu bekommen solltest du in php.ini nach "global_variable..." oder so suchen und auf ON stellen.
Linux is for networking
Mac is for working
Windows is for Solitair
Benutzeravatar
roemi
Advanced Hacker
Advanced Hacker
Beiträge: 822
Registriert: 1. Apr 2004, 19:01
Wohnort: Hanau
Kontaktdaten:

Beitrag von roemi »

hi,

meinst du mit
Die SQL, die auf anderen Servern problemlos läuft
das du bereits einen webserver am laufen hast und das dort der gesamte sql-krempel problemlos funzt?

oder meinst das deine sql-abfrage in irgendeinem frontend, auf einem anderen server, funzt?

römi
Benutzeravatar
Pauli
Newbie
Newbie
Beiträge: 10
Registriert: 16. Sep 2004, 08:56

-> zu: Läuft auf anderen Servern

Beitrag von Pauli »

Hallo,

danke für die Antwort.

Wenn ich schreibe, "läuft auf anderen Servern", so meine ich damit, dass ich einen lokalen WINDOWS-Testserver habe, auf dem das Ganze läuft.
Im Netz (WWW) - im Live-Betrieb - läuft auch alles.
Jetzt bin ich dabei, den Testserver auf Linux umzustellen, daher die ganze Aktion.

Bei der Konfiguration von PHP und MYSQL habe ich alle Parameter von der Installations-Grundeinstellung beibehalten, bis auf:

register_globals=On (=neue Einstellung)

Wie kann das nur möglich sein, dass die Abfrage keine Fehlermeldung bringt, aber die Ergebnismenge nicht gefüllt wird??

LG
Pauli
Benutzeravatar
Okami
Member
Member
Beiträge: 78
Registriert: 28. Mai 2004, 12:58
Wohnort: BASF City

Re: -> zu: Läuft auf anderen Servern

Beitrag von Okami »

Pauli hat geschrieben:Wie kann das nur möglich sein, dass die Abfrage keine Fehlermeldung bringt, aber die Ergebnismenge nicht gefüllt wird??
Dieser Sachverhalt läßt sich erklären, wenn die Abfrage zwar ausgeführt wird, aber ein leeres Array zurückgibt --> keine Fehlermeldung, aber auch keine Ergebnismenge.
PC: AMD Athlon64 3700+, 1024 MB DDR-RAM PC-400, SuSE 10.0
Notebook: Acer Travelmate 800, Centrino 1300 MHz, 512 MB DDR, SuSE 9.3 Pro
Benutzeravatar
roemi
Advanced Hacker
Advanced Hacker
Beiträge: 822
Registriert: 1. Apr 2004, 19:01
Wohnort: Hanau
Kontaktdaten:

Beitrag von roemi »

hast du dir mal den inhalt deiner variablen ausgeben lassen?

römi
Benutzeravatar
Pauli
Newbie
Newbie
Beiträge: 10
Registriert: 16. Sep 2004, 08:56

Beitrag von Pauli »

Zu: Okami
Ja, das habe ich auch gedacht, dass die Abfrage möglicherweise von Haus aus kein Ergebnis bringt.
Spätestens, nachdem ich die am Screen geprintete $sql als Text kopiert und in die Shell-Mysql-Abfrage eingefügt habe - und diese auch noch das erwartete Ergebnis in der Shell brachte - habe ich wirklich nicht mehr weiter gewußt.

Zu: Roemi:
Meinst Du den Vardump? Oder die $sql? Viele Variablen habe ich bei der Abfrage ja nicht.
Der Connect zur DB geht (wenn ich den rausnehme, kommt auch die erwartete Fehlermeldung)
Und die Query ist auch sauber (baue ich einen Syntax-Fehler ein, bekomme ich die erwartete Fehlermeldung)
Die in jedem Fall (soll-)datenbringende Query (z.B.: SELECT * FROM tabelle) gibt schon kein Ergebnis, obwohl sich Daten in der Tabelle befinden.

Kann das an einer fehlerhafte Einstellung in PHP oder MYSQL sein?
Habe aber zu so einer möglichen Einstellung noch garnichts gelesen/gehöert...

Watt nun - wie der Elektriker zu sagen pflegt???

LG
Pauli
Benutzeravatar
roemi
Advanced Hacker
Advanced Hacker
Beiträge: 822
Registriert: 1. Apr 2004, 19:01
Wohnort: Hanau
Kontaktdaten:

Beitrag von roemi »

hi,

nee ich meinte schon die sql$.
da is man mit seinem latein am ende :?

kannst du mal einen völlig variablenfreien connect und eine
hardcodierte abfrage starten.
nur zum testen (also nicht auf fehler testen).

römi
Benutzeravatar
Pauli
Newbie
Newbie
Beiträge: 10
Registriert: 16. Sep 2004, 08:56

Beitrag von Pauli »

HAAA!

Jetzt gibts eine Fehlermeldung van mysql_error():
Access denied for user: '@localhost'

Da ich bei meinem Windowsserver wohl eine andere Grundeinstellung hatte, bin ich nie auf so ein Probelm gestossen.

Aber jetzt habe ich als LINUX-Newbie ein anderes Problem: Wie stelle ich hier den Standarduser ein??

Darf ich noch einmal um Rat bitten?

mfg
Pauli
Benutzeravatar
roemi
Advanced Hacker
Advanced Hacker
Beiträge: 822
Registriert: 1. Apr 2004, 19:01
Wohnort: Hanau
Kontaktdaten:

Beitrag von roemi »

hi,

ich hoffe es wird schnell einer widersprechen wenn ich nun blödsinn erzähle.

aber ....

diese meldung sagt aus, glaube ich, das du nicht genügend recht auf deine verzeichnisse und dateine hast.
ich glaube du muss alles auf 775 hochhieven.

dann sollte es klappen.

mit deinem user innerhalb von mysql oder php hat das nichts zu tun.


römi

das ist aber eine aussage die ohne meinen anwalt keine gültigkeit hat :wink:
Benutzeravatar
nobbiew
Hacker
Hacker
Beiträge: 497
Registriert: 1. Mär 2004, 23:26

Beitrag von nobbiew »

Nein die Meldung besagt, dass du keinen DB-User angegeben hast. Zeig uns mal deine connect-Anweisung
Benutzeravatar
Pauli
Newbie
Newbie
Beiträge: 10
Registriert: 16. Sep 2004, 08:56

Beitrag von Pauli »

@nobbiew

ja, ich gebe keinen Benutzer und kein Passwort an.
Auf meinem lokalen Windows Testserver war ich das so gewohnt, das lief auch immer so. Und wenn ich versucht habe, da einen User einzutragen, ging nichts mehr.

Was muss ich denn (bei Linux) tun, um einen DB-User anzulegen?
Oder ist einer angelegt (der root) und welches Passwort hat dieser? (Bestimmt nicht das Login-Passwort??)
Dann kann ich den Benutzer und das Passwort im Script an die DB übergeben (das wäre auch der korrekte Weg, denke ich).

:?:

Grüße!
Pauli
Benutzeravatar
nobbiew
Hacker
Hacker
Beiträge: 497
Registriert: 1. Mär 2004, 23:26

Beitrag von nobbiew »

Schau mal in der Mysql in die Datenbank mysql und da in die Tabelle users. Dort sind alle berechtigten User mit internen Rechten und von welchem rechner (hier localhost) angegeben. Näheres dazu findest du in der Online-Doku von mysql /usr/share/doc/packages/mysql/html/index.html
Gesperrt