WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 01.09.2003, 12:47   #1
Dane
Master
 
Registriert seit: 12.01.2002
Beiträge: 640


Standard Hilfe bei PHP-Script!

Hab ein Script das daten an ein anderes script übergibt: Das Script das sie empfängt sieht folgendermassen aus:
Zitat:
<?php

$db = mysql_connect();

$sqlab = "update Userdata set Logname = '$fln',";
$sqlab .= "Passwort = '$fpw',";
$sqlab .= "Name = '$fna',";
$sqlab .= "Nickname = '$fnn',";
$sqlab .= "Gatung = '$flg',";
$sqlab .= "Fotolink = '$ffl',";
$sqlab .= "Alter = '$fal',";
$sqlab .= "Beruf = '$fbe',";
$sqlab .= "Email = '$fem',";
$sqlab .= "Wohnort = '$fwo',";
$sqlab .= "Icqnummer = '$fin'";
$sqlab .= " where IDNummer = $fid and SessionID = $fsi";

mysql_db_query("datenbank", $sqlab);
$a= mysql_error();
$b= mysql_errno();
echo " $a $b";
$aff = mysql_affected_rows();
if ($aff>0)
echo "<center><font size=\"-1\" color=\"#FFFFFF\">Die Eintr&auml;ge wurden ge&auml;ndert</font></center>";
else
echo "<center><font size=\"-1\" color=\"#FFFFFF\">Fehler beim Speichern! Eintr&auml;ge nicht ge&auml;ndert!</font></center>";

mysql_close($db);
?>
Aber es liefert die Fehlermeldung:
Zitat:
You have an error in your SQL syntax near 'Alter = '17',Beruf = 'Schüler',Email = 'dane.tschi@gmx.at',Wohnort = 'Klagenfurt' at line 1 Errornummer:1064
Vielleicht hat jemand ne Ahnung was da nicht stimmen könnte: Die Einträge gibt es 100% in der Datenbank, und die Daten werden 100% richtig ins Script übergeben!
Bin am Verzweifeln

Ach ja zum Überzeugen:
hier und einloggen mit Dane und 12345
Dane ist offline   Mit Zitat antworten
Alt 01.09.2003, 13:29   #2
dub
Veteran
 
Registriert seit: 28.01.2003
Alter: 41
Beiträge: 321


dub eine Nachricht über ICQ schicken
Standard

Hallo!

Ich schau mir das Statement grad schon seit fünf Minuten an, kann aber keinen Fehler finden. Hast du eine Möglichkeit, das SQL-Statement direkt auf der MySQL-Console auszuführen? Dort sind die Fehlermeldungen meist ausführlicher.

Ich täte aber an deiner Stelle das SQL-Statement anders bauen, damit du dich mit den einfachen und doppelten Hochkommata weniger irren kannst:

PHP-Code:
$sql "UPDATE tablename SET foo = '" $foo "',bar = '" $bar "' WHERE foobar = '" $foobar "'"
Des weiteren würde ich empfehlen, auch nicht den "veralteten" Befehl mysql_db_query() sondern den empfohlenen mysql_query() verwenden. Allerdings musst du beim zweiten zuvor noch mit mysql_select_db() die gewünschte Datenbank auswählen. Die Auswahl gilt dann übrigens solange, bis eine andere getroffen wird, also für alle Statements.

#Hannes#
dub ist offline   Mit Zitat antworten
Alt 01.09.2003, 13:35   #3
dub
Veteran
 
Registriert seit: 28.01.2003
Alter: 41
Beiträge: 321


dub eine Nachricht über ICQ schicken
Standard

Sorry, wollt noch das ganze schreiben [falls es da jemanden gibt, der net weiß was ich mein ;-)]

PHP-Code:
$sql "";                          // SQL-Statement
mysql_select_db("tablename");       // Auswahl der Datenbank
$res mysql_query($sql);           // Ausführen des SQL-Statement 
Links zur deutschen PHP-Doku:
#Hannes#
dub ist offline   Mit Zitat antworten
Alt 01.09.2003, 13:51   #4
Dane
Master
 
Registriert seit: 12.01.2002
Beiträge: 640


Standard

Also hab jetzt das mit db_select gemacht aber ändern tut sich nix.
Wie für ich den Code auf der Console aus?
Dane ist offline   Mit Zitat antworten
Alt 01.09.2003, 14:40   #5
Dane
Master
 
Registriert seit: 12.01.2002
Beiträge: 640


Standard

Hab das Probelm gelöst, wie folgend: Hab herum Probiert und einzelne Einträge entfernt zum Updaten, als ich Alter entfernt hatte ging alles normal, also Spalte der Tabelle von Alter auf Agejah umbenannt und funktioniert nun einwandfrei!
ALSO NIE EINE SPALTE IN EINER MYSQL-TABELLE "ALTER" NENNEN!!!!!
Dane ist offline   Mit Zitat antworten
Alt 01.09.2003, 22:05   #6
dub
Veteran
 
Registriert seit: 28.01.2003
Alter: 41
Beiträge: 321


dub eine Nachricht über ICQ schicken
Standard

Hallo du!

Das hätt mir auch auffallen können: ALTER ist ein SQL-Befehl und darf deswegen nie in einem Query als Feld-Name vorkommen *schäm*

#Hannes#
dub ist offline   Mit Zitat antworten
Alt 02.09.2003, 11:31   #7
jonix
Veteran
 
Registriert seit: 03.08.2000
Alter: 47
Beiträge: 461


Standard

http://www.mysql.com/doc/de/Legal_names.html

Zitat:
Beachten Sie, dass, falls der Bezeichner ein reserviertes Wort ist oder Sonderzeichen enthält, er bei der Benutzung immer in ` angegeben sein muss:

SELECT * from `select` where `select`.id > 100;
____________________________________
hampel.at
jonix ist offline   Mit Zitat antworten
Alt 02.09.2003, 14:34   #8
dub
Veteran
 
Registriert seit: 28.01.2003
Alter: 41
Beiträge: 321


dub eine Nachricht über ICQ schicken
Standard

Wow, wusste ich garnicht, dass es erlaubt ist, Bezeichner als Feldnamen zu verwenden

#Hannes#
dub ist offline   Mit Zitat antworten
Antwort


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

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:47 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag