php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.07.2008, 17:27  
Erfahrener Benutzer
 
Registriert seit: 07.06.2005
Beiträge: 274
imported_kremser
Standard syntax error - finde fehler nicht

PHP-Code:
<?php
      mysql_query
("INSERT INTO newsletter SET
                   id    = "
.next_id('newsletter').",
                   name  = "
.$name['raw'].",
                   email = "
.$email['raw'].",
                   pin   = "
.md5(time()*microtime())."
                  "
) or die(mysql_error());
?>
sieht jemand einen fehler???



bei der eingabe passiert folgendes..
zb wenn die eingabe bei $name['raw'] test ist kommt als fehlermeldung:
Unknown column 't' in 'field list'
imported_kremser ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.07.2008, 17:37  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
mysql_query("INSERT INTO newsletter (id, name, email, pin)
VALUES
('"
.next_id('newsletter')."',
'"
.$name['raw']."',
'"
.$email['raw']."',
'"
.md5(time()*microtime())."')"
or die(mysql_error()); 
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 03.07.2008, 17:51  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Die erste Syntax ist ebenfalls möglich in MySQL. Allerdings solltest du deine Werte
1. in ' ' setzen. also id = '".next_id('newsletter')."'
2. Werte die du in die DB speicherst solltest du escapen. Siehe dazu mysql_real_escape_string()

Zeig uns doch mal die gesamte Fehlermeldung. mysql_error() sollte doch noch etwas mehr ausspucken. Außerdem könntest du dir den Query mal ausgeben lassen wie er aussieht wenn du die Variablen eingefügt hast.

Desweitern verwendest du "next_id('newsletter')". Schaut diese Funktion einfach nur was die nächst größere ID in der Datenbank ist? Dafür kannst du die Spalte der Datenbank auf "auto_increment" setzen. Dann muss du beim INSERT gar keine ID eingeben und sie wird automatisch vergeben.
Flor1an ist offline  
Alt 03.07.2008, 18:03  
Erfahrener Benutzer
 
Registriert seit: 07.06.2005
Beiträge: 274
imported_kremser
Standard

danke razor!

das problem lag an der "next_id"-funktion.. dadurch dass ich dieses feld
jetzt auf auto_increment gesetzt hab, anstatt die funktion zu verwenden,
funktioniert es.
fürs überprüfen verwende ich stripslashes, trim, htmlentities und preg_match - reicht glaube ich



@ freaeaak ich bin für meine variante - ist einfach schöner anzusehen
imported_kremser ist offline  
Alt 03.07.2008, 18:08  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von kremser
@ freaeaak ich bin für meine variante - ist einfach schöner anzusehen
hab das noch nie so gesehen, wusste ich nicht
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 03.07.2008, 18:25  
Erfahrener Benutzer
 
Registriert seit: 07.06.2005
Beiträge: 274
imported_kremser
Standard

naja, jetzt hast du es gesehen
imported_kremser ist offline  
Alt 03.07.2008, 18:50  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

- statt next_id () kannst Du auch einfach NULL benutzen oder gar keinen Wert für id setzen.

-
Zitat:
fürs überprüfen verwende ich stripslashes, trim, htmlentities und preg_match - reicht glaube ich
Das kommt immer drauf an.

- Die VALUES Methode geht dafür mit mehreren Datensätzen gleichzeitig. Bei SET meines Wissens nicht.
nikosch ist gerade online  
Alt 03.07.2008, 20:03  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wenn nur ein Eintrag stattfindet reicht ja SET aus. Gefällt mir persönlich auch aber ist wohl nicht so die richtige Art.

Und deine ganzen Funktionen brauchst du eigentlich nicht wenn du mysql_real_escape_string() verwendest. Zum anzeigen dann natürlich noch html_entiies() aber sonst ...
Flor1an ist offline  
Alt 04.07.2008, 00:40  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zitat von RaZoR
Und deine ganzen Funktionen brauchst du eigentlich nicht wenn du mysql_real_escape_string() verwendest.
stripslashes u.U. schon ...

Und selbst mysql_real_escape_string schützt nicht, wenn bspw. bei einem INT Feld
Code:
1 OR 1=1
erlaubt würde.
nikosch ist gerade online  
Alt 11.07.2008, 10:09  
Erfahrener Benutzer
 
Registriert seit: 07.06.2005
Beiträge: 274
imported_kremser
Standard

ich will ja eine gültige email adresse, einen echten namen usw in die db bekommen - darum preg_match
imported_kremser 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
INSERT....Syntax Fehler OrlandoPolic Datenbanken 16 17.01.2008 23:19
Syntax Fehler PHP Tipps 2006 9 04.08.2006 18:20
[Erledigt] Mysql Syntax Fehler Datenbanken 3 06.07.2006 09:58
Syntax fehler mokus PHP Tipps 2006 8 21.06.2006 17:02
Syntax fehler wer findet ihn als erster?!! ;) c-bass PHP Tipps 2005-2 12 14.08.2005 17:50
Wo ist der Fehler Parse error: syntax error, unexpected T_CO EvilDragon PHP Tipps 2005-2 3 10.06.2005 16:31
Fehler in SQL Syntax CSS PHP Tipps 2005 3 06.04.2005 16:53
Fehler in der Syntax? Datenbanken 5 29.11.2004 21:44
SQL Syntax Fehler, aber wo? Calexico PHP Tipps 2004-2 7 12.11.2004 14:52
sql syntax fehler PHP Tipps 2004 2 23.10.2004 19:55
[Erledigt] sql - syntax fehler Datenbanken 2 18.10.2004 21:36
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
[Erledigt] Wo ist der Fehler? (Syntax) PHP Tipps 2004 24 05.07.2004 03:20
MySQL Syntax Fehler PHP Tipps 2004 3 27.06.2004 13:01
In DB schreiben => Syntax Fehler Datenbanken 6 16.06.2004 22:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
syntaxfehler in emailadresse

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:42 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.