Probleme mit SQL Statement

Probleme mit SQL Statement

am 11.12.2005 16:52:49 von pc-service-fischer

Hallo allerseits,

ich bekomme in einem CMS immer SQL Statementfehler

*Warning*: mysql_num_rows(): supplied argument is not a valid MySQL
result resource in
*C:\apachefriends\xampp\htdocs\web\cmsadmin\content_artikel\ includes\modul_art_img.php*
on line *82

Nun hab ich folgende Zeilen eingefügt um mehr zu erfahren.

echo $sql;
echo mysql_error();

Jetzt steht da:

SELECT * FROM tblcms_navigation WHERE publik=1 and parentid=ORDER BY
posYou have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'ORDER BY pos' at line 1
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result
resource in
C:\apachefriends\xampp\htdocs\web\includes\__module_engine.p hp on line 116


Das macht er in ca. 15 / 100 Fällen.

Das hier bemängelte sieht so aus.

$sql = "SELECT * FROM tblcms_navigation WHERE publik=1 and
parentid=".$pid. "ORDER BY pos";
$res=mysql_query($sql);
if (mySql_num_rows($res)!=0)
{....

Was mach ich falsch.


Gruß Jörg

Re: Probleme mit SQL Statement

am 11.12.2005 17:04:32 von Dirk Brosowski

Joerg Fischer schrieb:

>
> SELECT * FROM tblcms_navigation WHERE publik=1 and parentid=ORDER BY
> pos

Das ist kein SQL-Statement. Korrigiere dein Programm zur Erstellung.
Wenn du PHP-Hilfe suchst, bist du hier allerdings sehr OFF-Topic.

Greetings.

Re: Probleme mit SQL Statement

am 11.12.2005 17:08:54 von Andreas Kretschmer

Andreas
--
Diese Message wurde erstellt mit freundlicher Unterstützung eines freilau-
fenden Pinguins aus artgerechter Freilandhaltung. Er ist garantiert frei
von Micro$oft'schen Viren. (#97922 http://counter.li.org) GPG 7F4584DA
Was, Sie wissen nicht, wo Kaufbach ist? Hier: N 51.05082°, E 13.56889° ;-)

Re: Probleme mit SQL Statement

am 11.12.2005 17:30:02 von pc-service-fischer

Dirk Brosowski schrieb:
> Joerg Fischer schrieb:
>
>>
>> SELECT * FROM tblcms_navigation WHERE publik=1 and parentid=ORDER BY pos
>
>
> Das ist kein SQL-Statement. Korrigiere dein Programm zur Erstellung.
> Wenn du PHP-Hilfe suchst, bist du hier allerdings sehr OFF-Topic.
>
> Greetings.

sorry hab ich bemerkt und nochmal in der php group gepostet.

Gruß Jörg

Re: Probleme mit SQL Statement

am 11.12.2005 17:49:40 von Axel Schwenke

Joerg Fischer wrote:

> ich bekomme in einem CMS immer SQL Statementfehler

Darf man den Namen dieses Machwerks erfahren?
Dann kann man es gleich auf die schwarze Liste setzen.

> SELECT * FROM tblcms_navigation WHERE publik=1 and parentid=ORDER BY
> pos You have an error in your SQL syntax; check the manual that
> corresponds to your MySQL server version for the right syntax to use
> near 'ORDER BY pos' at line 1

....

> $sql = "SELECT * FROM tblcms_navigation WHERE publik=1 and
> parentid=".$pid. "ORDER BY pos";

Da kräuseln sich mir die Fußnägel:

1. SELECT *
2. `publik` aber `parentid`
3. Query bauen per Stringverkettung statt sprintf oder gleich
prepared Statements
4. Leerzeichen vor "ORDER BY" fehlt (das ist was MySQL anmeckert)
5. Vermutlich kein Schutz vor SQL-Injection

Da ist wesentlich mehr zu fixen als nur der Syntaxfehler...


XL

Re: Probleme mit SQL Statement

am 11.12.2005 18:07:45 von pc-service-fischer

Axel Schwenke schrieb:
> Joerg Fischer wrote:
>
>
>>ich bekomme in einem CMS immer SQL Statementfehler
>
>
> Darf man den Namen dieses Machwerks erfahren?
> Dann kann man es gleich auf die schwarze Liste setzen.
>
>
>>SELECT * FROM tblcms_navigation WHERE publik=1 and parentid=ORDER BY
>>pos You have an error in your SQL syntax; check the manual that
>>corresponds to your MySQL server version for the right syntax to use
>>near 'ORDER BY pos' at line 1
>
>
> ...
>
>
>>$sql = "SELECT * FROM tblcms_navigation WHERE publik=1 and
>>parentid=".$pid. "ORDER BY pos";
>
>
> Da kräuseln sich mir die Fußnägel:
>
> 1. SELECT *
> 2. `publik` aber `parentid`
> 3. Query bauen per Stringverkettung statt sprintf oder gleich
> prepared Statements
> 4. Leerzeichen vor "ORDER BY" fehlt (das ist was MySQL anmeckert)
> 5. Vermutlich kein Schutz vor SQL-Injection
>
> Da ist wesentlich mehr zu fixen als nur der Syntaxfehler...
>
>
> XL


Schade um deine Fußnägel ;-)

Das ganze nennt sich tentsys und stammt aus dem Buch "Web content
Management" von M. Schröer

Das mit dem Leerzeichen ist nicht der Grund, weil längst behoben und
Fehler noch da.
Der Grund ist das die Variable keinen Wert hat, warum weiß ich leider
noch nicht.


Gruß Jörg