php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.10.2004, 20:00  
Gast
 
Beiträge: n/a
Standard Problem bei $_GET in SQL-Abfrage

Hallo,

hab folgende SQL-Afrage, die über GET eine Variable übernehmen soll. Die Variable wird zwar übergeben (kann sie mit echo ausgeben), aber in der SQL-Abfrage wird sie nicht akzeptiert.
Wäre schön wenn jemand helfen könnte.
PHP-Code:
$erstellt date("d.m.Y H:i");
if (
$thema != "" and $Textfeld != "")
{    
$sql sprintf("INSERT INTO %s (titel, erstellt, text) VALUES ('%s', '%s', '%s')",        
$_GET['s'],        mysql_real_escape_string($thema),        mysql_real_escape_string($erstellt),        mysql_real_escape_string($Textfeld));     
if (
mysql_query($sql))    {        // Okay    }    
else    {        printf("

MySQL error %d: %s</p>\n"
mysql_errno(), htmlentities(mysql_error()));    }} 
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.10.2004, 20:25  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Du solltest [ code ] oder [ php ] BB Tags für Quellcode im Forum verwenden.
Mir ist aufgefallen, dass eine Klammer durch den Kommentar fehlt. Außerdem fand ich den Quellcode als unübersichtlich. Hier eine "schönere" Version, die eigentlich funktionieren müsste:
PHP-Code:
if ($thema != "" and $Textfeld != "")
 {
  
$sql "INSERT INTO ".$_GET['s']."
           (
            titel,
            erstellt,
            text
           )
          VALUES
           (
            '"
.mysql_real_escape_string($thema)."',
            '"
.date("d.m.Y H:i")."',
            '"
.mysql_real_escape_string($Textfeld)."'
           )
          "
;
  
mysql_query($sql) or die(mysql_error());
 } 
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline  
Alt 18.10.2004, 20:54  
Gast
 
Beiträge: n/a
Standard

Danke Dir, hab Deine Abfrage mal ausprobiert und bekomme jedes mal einen SQL Syntax-error.
Wenn ich ".$_GET['s']." gegen den tabellennamen tausche funktioniert es jedoch.
 
Alt 18.10.2004, 20:58  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Verstehe ich nicht!
Könntest du mir mal den Fehler geben, der beim Ausführen auftritt.
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline  
Alt 18.10.2004, 21:02  
Gast
 
Beiträge: n/a
Standard

Die Meldung lautet wie folgt:
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 '( titel, erstellt, text ) VALUES (
 
Alt 18.10.2004, 21:07  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Jetzt wäre noch $sql interesant. Also das Ergebnis von echo $sql.
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline  
Alt 18.10.2004, 21:14  
Gast
 
Beiträge: n/a
Standard

hier echo $sql:

INSERT INTO ( titel, erstellt, text ) VALUES ( 'klappt einfach ', '18.10.2004 21:12', 'nicht mit der eingabe' ) 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 '( titel, erstellt, text ) VALUES (
 
Alt 18.10.2004, 21:19  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Jetzt ist alles klar. Dir fehlt einfach der Wert in $_GET['s']. Da steht einfach nichts drin! Dann kann es ja nicht gehen, da mySQL nicht weis, wo rein es das speichern soll.
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline  
Alt 18.10.2004, 21:24  
Gast
 
Beiträge: n/a
Standard

Die Frage ist weshalb kann ich mir $_GET['s'] im sript mit echo ausgeben lassen, aber sobald es in der SQL-Aweisung steht ist die Variable leer????
 
Alt 18.10.2004, 21:29  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Hast du am Anfang des Dokuments error_reporting(E_ALL); geschrieben? Das sorgt dafür das alle Fehlermeldungen ausgegeben werden.
Was passiert wenn du $_GET['s'] direkt vor $sql ausgeben lässt?
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MySql Frage: Problem mit einer etwas lomplexeren Abfrage tomtaz Datenbanken 5 24.06.2008 22:36
Abfrage Problem mastermix Datenbanken 2 06.08.2007 11:45
[Erledigt] Problem mit Abfrage Datenbanken 0 20.10.2005 17:02
[MySQL] Problem mit einer verschachtelten Abfrage aktionkuba Datenbanken 7 06.04.2005 14:07
Problem mit abfrage. PHP Tipps 2005 13 30.03.2005 18:00
Problem mit abfrage und co PHP Tipps 2005 6 29.03.2005 16:38
Problem bei benutzername und passwort abfrage ? PHP Tipps 2005 4 15.03.2005 17:29
Abfrage Problem (vermute ich) PHP Tipps 2004-2 3 14.12.2004 22:21
[Erledigt] Abfrage LIMIT Problem Datenbanken 9 08.12.2004 19:05
Problem mit abfrage Datenbanken 8 05.12.2004 12:46
Problem mit einer SQL Abfrage picco PHP Tipps 2004-2 3 01.12.2004 22:32
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
[Erledigt] problem mit sql abfrage PHP Tipps 2004-2 6 13.11.2004 19:41
Problem mit SQL Abfrage Schiedsrichter Datenbanken 2 02.08.2004 07:52
Abfrage Problem (addition nicht mehr möglich?) Datenbanken 2 30.07.2004 15:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql $_get, $_get sql

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.