• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Keine Ergebnismenge bei mysql_query - wie möglich?

Status
Für weitere Antworten geschlossen.

Pauli

Newbie
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
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.
 

roemi

Advanced Hacker
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
 
OP
Pauli

Pauli

Newbie
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
 

Okami

Member
Pauli schrieb:
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.
 
OP
Pauli

Pauli

Newbie
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
 

roemi

Advanced Hacker
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
 
OP
Pauli

Pauli

Newbie
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
 

roemi

Advanced Hacker
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:
 
OP
Pauli

Pauli

Newbie
@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
 

nobbiew

Hacker
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
 
Status
Für weitere Antworten geschlossen.
Oben