fehler im SELECT Befehl?

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

fehler im SELECT Befehl?

Postby Tom182 » 08. March 2009 09:48

Hallo,

ich habe gerade ein Skript von meinem lokalen Server (mysql Version 5.0.67) auf meinen Webserver (mysql Version 4.0.23) kopiert. Leider bekomme ich bei dieser Zeile:

Code: Select all
$result = mysql_query("SELECT * FROM tabelle WHERE timestamp = (SELECT MAX(timestamp) FROM tabelle WHERE ip = '".$ip."')");

mysql_num_rows($result)


folgenden Fehler:

Code: Select all
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in


Lokal hat alles funktioniert... online leider nicht. Ich hoffe es kann mir jemand weiter helfen.

Danke
Tom182
 
Posts: 7
Joined: 08. March 2009 09:38
Operating System: Windows 7 Professional SP1 64

Re: fehler im SELECT Befehl?

Postby Nobbie » 08. March 2009 13:11

Du mußt in SELECT-Anweisungen Spalten- und Tabellennamen in Backticks setzen (das sind die Rückwärtshochkommata wie `hier`), wenn eine Namenskollision mit einem reservierten SQL Begriff möglich ist.

Der Begriff `timestamp` ist ein reserviertes SQL Wort.

Wenn das nicht hilft, könnte auch der Subselect (der geschachtelte Select) das Problem sein, ich weiß nicht, ab welcher MySQL Version die in dieser Form unterstützt werden und auf dem Server ist ja eine deutlich ältere Version als zu Hause. Wenn das die Ursache ist, mußt Du Selects trennen und in zwei Selects aufteilen (und den Wert aus dem inneren Select über PHP weitergeben).
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: fehler im SELECT Befehl?

Postby Tom182 » 08. March 2009 19:44

Vielen Dank für die schnelle Antwort!

Ich hab das mit den Hochkommata (´,`als auch ' ) probiert hat leider nicht geklappt. Ich habe die Spalte auch mal von timestamp in tstamp umbenannt. Hat leider auch nichts gebracht.

Weil ich noch recht unerfahren mit mysql Befehlen bin - meine Frage: Wie kann man den Befehl schön aufteilen ohne eine verschachtelung zu haben? Außerdem würde mich interessieren: Ist damit zu rechnen, dass ich mit alten Homepage-Projekten, die noch auf meinem Webspace liegen, Probleme bekomme, wenn ich auf eine neue mySQL Version updaten lasse (mein Anbieter stellt diese Möglichkeit zur Verfügung)?

Danke!
Tom182
 
Posts: 7
Joined: 08. March 2009 09:38
Operating System: Windows 7 Professional SP1 64

Re: fehler im SELECT Befehl?

Postby Wiedmann » 08. March 2009 19:50

Leider bekomme ich bei dieser Zeile: ... folgenden Fehler:

Wie schon erkannt wurde, tritt der Fehler ja wohl schon bei mysql_query() auf. Du solltest also prüfen ob das Kommando mysql_query() überhaupt funktioniert hat, und dir dann gegebenenfalls den mysql_error() ausgeben lassen.

Sie dazu die Beispiele im PHP Manual zu mysql_query() und mysql_error().
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: fehler im SELECT Befehl?

Postby Tom182 » 10. March 2009 19:40

der mysql_error() gibt den Subselect also

Code: Select all
SELECT MAX(timestamp) FROM tabelle WHERE ip =


aus. Daher gehe ich davon aus, dass die Mysql Version den Befehl nicht unterstützt. Daher meine Frage: kann es Probleme geben, wenn ich von mysql 4 auf 5 update oder ist mysql abwärtskompatibel?
Tom182
 
Posts: 7
Joined: 08. March 2009 09:38
Operating System: Windows 7 Professional SP1 64

Re: fehler im SELECT Befehl?

Postby Wiedmann » 10. March 2009 19:43

kann es Probleme geben, wenn ich von mysql 4 auf 5 update

Wie immer bei Upgrades von Programmen...

oder ist mysql abwärtskompatibel?

Grösstenteils.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: fehler im SELECT Befehl?

Postby make-fun » 12. March 2009 13:38

Subselects gab es erst ab MySQL Version 4.1
make-fun
 
Posts: 31
Joined: 11. March 2009 04:21


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 13 guests