WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Hilfe bei PHP-Script! (http://www.wcm.at/forum/showthread.php?t=107379)

Dane 01.09.2003 12:47

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:heul:

Ach ja zum Überzeugen:
hier und einloggen mit Dane und 12345

dub 01.09.2003 13:29

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 01.09.2003 13:35

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#

Dane 01.09.2003 13:51

Also hab jetzt das mit db_select gemacht aber ändern tut sich nix.
Wie für ich den Code auf der Console aus?

Dane 01.09.2003 14:40

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!!!!!:p

dub 01.09.2003 22:05

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#

jonix 02.09.2003 11:31

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;

dub 02.09.2003 14:34

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

#Hannes#


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:22 Uhr.

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