Webstatt.org - Community seit 2006 - 2012 (2024?)

query-frage

Avatar user-180
24.08.2007 12:23

hai.
wiekann ich einen wert in der mysql query bearbeiten?

code der nicht funtzt
$abfrage_news = "SELECT * FROM `".$db_prefix."news` WHERE url_titel_kurz(`anzeige`) = '".$_GET['newsid']"'";


url_titel_kurz ist eine funktion.

may the force be with you. but mostly with me.
Avatar user-159
24.08.2007 13:03

$abfrage_news = "SELECT * FROM `".$db_prefix."news` WHERE " . url_titel_kurz(`anzeige`) . " = '".$_GET['newsid']"'";


Das ganze sollte so doch eigentlich schon klappen oder nicht?

user-303
24.08.2007 13:09

nein, da `anzeige` wohl ein db feld ist.

egal wie man es dreht: mit mysql kann man kein callback auf php funktionen machen. das würde mit sqllite gehen, aber nunja, du verwendest kein sqlite.

es gibt meiner meinung nach 2 möglichkeiten:

du baust dein query so um, dass du eben keine funktion brauchst, oder du musst dir eien mysql funktion basteln: http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

Avatar user-180
24.08.2007 13:23

hm danke...
ich glaube ich mach einfach noch ein weiteres feld in der db und speichere es da rein... ich für mich einfacher...

danke !

may the force be with you. but mostly with me.
Avatar user-194
25.08.2007 11:46

Original von user-180
code der nicht funtzt
$abfrage_news = "SELECT * FROM `".$db_prefix."news` WHERE url_titel_kurz(`anzeige`) = '".$_GET['newsid']"'";

Das mag jetzt aus dem Zusammenhang gerissen sein -- aber so wie das Query hier steht solltest du das auf keinen Fall irgendwo einsetzen, wo jemand außer dir Zugriff hat (SQL-Injection). SELECT * sollte man außerdem aus Dokumentations- und Performance-Gründen nicht verwenden.

Avatar user-180
25.08.2007 17:18

wie macht man es denn dann?
ich bin in datenbanksachen nicht fit...

may the force be with you. but mostly with me.
Avatar user-194
25.08.2007 19:06

Original von user-180
wie macht man es denn dann?

http://de.php.net/manual/en/function.mysql-real-escape-string.php
http://de.php.net/manual/en/security.database.sql-injection.php
http://de.wikipedia.org/wiki/SQL-Injektion

ich bin in datenbanksachen nicht fit...

Es ist eigentlich eine generelle Regel, keine vom User beeinflussbaren Daten ungeprüft an Systeme weiterzureichen, die außerhalb der eigenen Kontrolle liegen (Datenbanken, system()-Funktionen, PHP selbst).