Willkommen in der Webstatt Zum Webstatt Blog und Stories
fish fish am 24.08.07 14: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.

netcup.de Warum gibt es hier Werbung?
danieL danieL am 24.08.07 15: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?

Snake am 24.08.07 15: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

fish fish am 24.08.07 15: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 !

hoffie hoffie am 25.08.07 13:46

Quote
Original von fish
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.

fish fish am 25.08.07 19:18

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

hoffie hoffie am 25.08.07 21:06

Quote
Original von fish
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

Quote
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).

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt