Alt 22.01.2007, 17:21:04   #1
Sascha91
KlammID: 236083

ID: 236083
Lose senden

Sascha91 eine Nachricht über MSN schicken
Reg: 04.05.2006
Beiträge: 148
Standard [PHP/MySQL] Datensätze hinzufügen

guten Abend,

Wieso geht das nicht?

PHP-Code:
1:
INSERT INTO ticker_user(Name,E-Mail,IP,DatumVALUES('$_POST["Name"]','$_POST["Mail"]','$_SERVER['REMOTE_ADDR']','NOW();'); 
 
Sascha91 ist offline   Mit Zitat antworten
Alt 22.01.2007, 17:30:57   #2
theHacker
sieht vor lauter Ads
den Content nicht mehr
Benutzerbild von theHacker

ID: 69505
Lose senden

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.689
Standard

Zitat:
Zitat von Sascha91 Beitrag anzeigen
Wieso geht das nicht?
Weil die Query keine Füße hat
theHacker ist offline   Mit Zitat antworten
Alt 22.01.2007, 17:43:22   #3
Sascha91
KlammID: 236083

ID: 236083
Lose senden

Sascha91 eine Nachricht über MSN schicken
Reg: 04.05.2006
Beiträge: 148
Standard

Es soll mein erstes Script geben, dass mit einer Datenbank läuft. Wie kann ich denn einen Datensatz in die DB einfügen?
 
Sascha91 ist offline Threadstarter   Mit Zitat antworten
Alt 22.01.2007, 17:49:10   #4
strolch00
redraft.de

ID: 155297
Lose senden

strolch00 eine Nachricht über ICQ schicken
Reg: 21.04.2006
Beiträge: 1.684
Standard

so wäre es richtig
PHP-Code:
1:
mysql_query("INSERT INTO ticker_user (Name,E-Mail,IP,Datum) VALUES ('".$_POST['Name']."','".$_POST['Mail']."','".$_SERVER['REMOTE_ADDR']."',".time().");"); 
Btw denk an SQL Injektion und das ; im Query muss nicht zwingend sein.

*edit

wenn du nicht weis wie man mit php einen Query absendet dann schau dir erst das hier an

mysql_connenct
mysql_select_db
mysql_query

**edit 2
Man sollte sich Feldnamen in solch einer Schreibweise angewöhnen weil es im SQL sogenannte "Reservierte Worter" gibt.
PHP-Code:
1:
mysql_query("INSERT INTO `ticker_user` (`Name`,`E-Mail`,`IP`,`Datum`) VALUES ('".$_POST['Name']."','".$_POST['Mail']."','".$_SERVER['REMOTE_ADDR']."',".time().");"); 

Geändert von strolch00 (22.01.2007 um 18:56:35 Uhr)
strolch00 ist offline   Mit Zitat antworten
Alt 22.01.2007, 17:51:12   #5
Sascha91
KlammID: 236083

ID: 236083
Lose senden

Sascha91 eine Nachricht über MSN schicken
Reg: 04.05.2006
Beiträge: 148
Standard

Ok, hab nachgeschaut, was das heisst. Dann muss man irgendwo
PHP-Code:
1:
SELECT feld FROM db 
hineinschreiben. Doch wenn ich jetzt in 4 Felder etwas schreiben will muss ich dann alle Feldernamen nach select rein schreiben?
 
Sascha91 ist offline Threadstarter   Mit Zitat antworten
Alt 22.01.2007, 17:51:18   #6
theHacker
sieht vor lauter Ads
den Content nicht mehr
Benutzerbild von theHacker

ID: 69505
Lose senden

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.689
Standard

Mit INSERT INTO fügst du Datensätze ein, das ist schon richtig.

Aber solang du dich nicht an die Regeln hältst, keine Fehlermeldungen und genaueren Infos gibst, kann, will und wird dir bei deinem konkreten Problem, warum obiges nicht funktioniert, wohl niemand helfen (können)

Infos zu INSERT INTO:
http://dev.mysql.com/doc/refman/5.0/en/insert.html
theHacker ist offline   Mit Zitat antworten
Alt 22.01.2007, 18:18:40   #7
Sascha91
KlammID: 236083

ID: 236083
Lose senden

Sascha91 eine Nachricht über MSN schicken
Reg: 04.05.2006
Beiträge: 148
Standard

Einmal lief es mit der Variante von strolch00, aber dann nicht mehr.

Folgenden Fehler
Zitat:
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 ''ticker_user' ('Name','E-Mail','IP','Datum') VALUES (Sascha Krähenbühl,mail@sasc' at line 1
 
Sascha91 ist offline Threadstarter   Mit Zitat antworten
Alt 22.01.2007, 18:32:02   #8
tleilax
be forever curious
Benutzerbild von tleilax

ID: 27936
Lose senden

Reg: 20.04.2006
Beiträge: 2.429
Standard

Zitat:
Zitat von strolch00 Beitrag anzeigen
Man sollte sich Feldnamen in solch einer Schreibweise angewöhnen weil es im SQL sogenannte "Reservierte Worter" gibt.
PHP-Code:
1:
mysql_query("INSERT INTO `ticker_user` (`Name`,`E-Mail`,`IP`,`Datum`) VALUES (".$_POST['Name'].",".$_POST['Mail'].",".$_SERVER['REMOTE_ADDR'].",".time().");"); 
Sorry, aber das ist Quatsch. Man sollte sich diese Schreibweise in keinster Weise angewöhnen. Man sollte wissen, welches die reservierten Wörter des jeweiligen SQL-Dialekts sind und wie man sie behandelt bzw diese ganz vermeiden.

Ich durfte vor kurzem solche MySQL-Queries nach Oracle portieren und wenn man dabei 95% der Zeit nur Backticks entfernt, beginnt man, die Scheissdinger zu hassen und phpMyAdmin zu verfluchen, wo sich scheinbar viele diesen "Stil" (oder auch unnötigen Overhead) abgucken...
.lange tage und angenehme nächte, tlx
:.whatthemovie.com (Screenshots raten) | PHP ExportForce-Klasse
tleilax ist offline   Mit Zitat antworten
Alt 22.01.2007, 18:44:32   #9
Sascha91
KlammID: 236083

ID: 236083
Lose senden

Sascha91 eine Nachricht über MSN schicken
Reg: 04.05.2006
Beiträge: 148
Standard

Das geht nicht.

ganzer code:
PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?php
$host
="localhost";
$user="klopp1991";
$pw="123456";
$db="db_klopp2000_4";

$verbindung mysql_pconnect($host,$user,$pw);
mysql_select_db($db$verbindung);

mysql_query("INSERT INTO `ticker_user` (`Name`,`E-Mail`,`IP`,`Datum`) VALUES (".$_POST['Name'].",".$_POST['Mail'].",".$_SERVER['REMOTE_ADDR'].",".time().");")  or die(mysql_error());
mysql_close();
?>
 
Sascha91 ist offline Threadstarter   Mit Zitat antworten
Alt 22.01.2007, 18:53:17   #10
strolch00
redraft.de

ID: 155297
Lose senden

strolch00 eine Nachricht über ICQ schicken
Reg: 21.04.2006
Beiträge: 1.684
Standard

Zitat:
Zitat von tleilax Beitrag anzeigen
Sorry, aber das ist Quatsch. ....
Nagut aber,
1. mit Oracle habe ich keine Erfahrungen
2. Es geht ja hier um PHP und wenn der ERROR bei dem Tabellennamen anfängt bin ich davon ausgegangen das ist evtl. ein solches. wobei das recht abwegig ist. Zugegeben nachgeschaut habe ich nicht, mein Fehler. Und ich selber habe es mir auch nicht angewöhnt ich schreibe es nur bei JOIN Querys wegen den Table Alias als a.`foo` sonst mache ich es auch nicht.

*edit
auch mein Fehler hatte nur stumpfsinnig kopiert die Felder sind natürlich bis auf das letzte Strings

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?php 
$host
="localhost"
$user="klopp1991"
$pw="123456"
$db="db_klopp2000_4"

$verbindung mysql_pconnect($host,$user,$pw); 
mysql_select_db($db$verbindung); 

mysql_query("INSERT INTO `ticker_user` (`Name`,`E-Mail`,`IP`,`Datum`) VALUES ('".$_POST['Name']."','".$_POST['Mail']."','".$_SERVER['REMOTE_ADDR']."',".time().");")  or die(mysql_error()); 
mysql_close(); 
?>
strolch00 ist offline   Mit Zitat antworten
Alt 22.01.2007, 18:53:26   #11
tleilax
be forever curious
Benutzerbild von tleilax

ID: 27936
Lose senden

Reg: 20.04.2006
Beiträge: 2.429
Standard

Vorweg: Kein mysql_pconnect() verwenden, solange Du nicht weisst, was Du tust. Das öffnet eine persistente Verbindung, die am Ende des Skriptes nicht geschlossen wird und somit schnell den Flaschenhals zum DB-Server noch weiter verengen kann.

Zum eigentlichen Problem:

Strings (und zwar nur Strings - keine Zahlen!) müssen in SQL durch Ticks ( ' ) maskiert werden. Demzufolge:
Code:
1:
[...]VALUES ('".$_POST['Name']."','". //....
Oder (wie ich finde) übersichtlicher:
Code:
1:
[...]VALUES ('{$_POST['Name']}', '{ /...
.lange tage und angenehme nächte, tlx
:.whatthemovie.com (Screenshots raten) | PHP ExportForce-Klasse
tleilax ist offline   Mit Zitat antworten
Alt 22.01.2007, 19:29:35   #12
Sascha91
KlammID: 236083

ID: 236083
Lose senden

Sascha91 eine Nachricht über MSN schicken
Reg: 04.05.2006
Beiträge: 148
Standard

Ok, jetzt läufts.
 
Sascha91 ist offline Threadstarter   Mit Zitat antworten
Antwort

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] Datensätze löschen, bis auf 50. Axel Programmierung 10 30.11.2006 20:40:56
[SQL] Datensätze von heute/gestern Malo Programmierung 7 05.10.2006 18:15:36
Datensätze der nächsten 4 Wochen auslesen zerberos Programmierung 2 23.08.2006 11:52:53
[PHP/MySQL] Suche Datensätze aus Table 1 mit einer ID, die in Table 2 (nicht)vorkommt theHacker FAQ und Archiv 2 09.07.2006 18:13:32
[MySQL] Zufällig einen oder mehrere Datensätze auswählen theHacker FAQ und Archiv 0 29.04.2006 16:01:41


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07:49 Uhr.