Daniela Koller: MySQL Fehlermeldung

Beitrag lesen

Hi Ralf

$textsql="UPDATE text SET id='$id', praxis='$sess_praxis',
titel1='$sess_titel1',vorname1='$sess_vorname1',
$nachname1='$sess_nachname1', facharzt1='$sess_facharzt1',
titel2='$sess_titel2',vorname2='$sess_vorname2',
$nachname2='$sess_nachname2', facharzt2='$sess_facharzt2',

^

strasse='$sess_strasse', hausnr='$sess_hausnr', land='$sess_land',
plz='$sess_plz', ort='$sess_ort', vorwahl1='$sess_vorwahl1',
vorwahl2='$sess_vorwahl2', vorwahl3='$sess_vorwahl3', tel1='$sess_tel1',
tel2='$sess_tel2', fax='$sess_fax', email='$sess_email',
homepage='$sess_homepage', bank1='$sess_bank1', blz1='$sess_blz1',
konto1='$sess_konto1', bank2='$sess_bank2', blz2='$sess_blz2',
konto2='$sess_konto2', logo='$sess_logo', datei='$sess_datei',
bild='$sess_bild' WHERE id='$id';";

Was daran auffällt (mit ^ gekennzeichnet), ist, das du nicht nachname2
sondern $nachname2 setzen willst, ansich nicht schlimm falls $nachname2
den Spaltennamen enthält, scheint jedoch eher n Tippfehler zu sein.

das ist der string wenn er übergeben wird:
UPDATE text SET id='d62a0ee8c9a700d0ec6e45dd5107ba91',
praxis='a', titel1='a',vorname1='a', ='a', facharzt1='a', titel2='a',
vorname2='a', ='a', facharzt2='a', strasse='a', hausnr='a', land='a',

^

plz='a', ort='a', vorwahl1='a', vorwahl2='a', vorwahl3='a', tel1='a',
tel2='a', fax='a', email='a', homepage='a', bank1='a', blz1='a',
konto1='a', bank2='a', blz2='a', konto2='a', logo='', datei='',
bild='' WHERE id='d62a0ee8c9a700d0ec6e45dd5107ba91'

Hier siehst du das nochmal, $nachname2 ist leer, deswegen ='a', dass
ist jedoch vom syntax her falsch.

Ansonsten noch anzumerken, logo, datei und bild, sind die absichtlich
leer? Neu zu setzen brauchst du übrigens nur die Felder die du auch
ändern willst, also zb id nicht (ich glaube, Primärschlüssel kann
man auch gar nicht ändern).

Dann solltest du prüfen ob es den Record mit der ID den du updaten
willst überhaupt schon gibt, von der Fehlermeldung her nehm ich aber
an, es ist der Syntaxfehler der ihn gestört hat.

Dein Datenbankdesign solltest du auch nochmal anschauen, das sieht nach
viel Redundanz aus und dem Versuch mehrfach vorkommende Attribute
zwanghaft in die Tabelle zu quetschen und zu hoffen das du genug definiert
hast.

Auch zu den NOT NULL von Aqua noch eine Bemerkung, das solltest du
wirklich nur auf NULL ändern wenn du genau weist was du tust, sonst
handelst du dir möglicherweise Probleme ein damit. NULL bedeutet
undefiniert, und da kann dann wirklich alles drinstehen und du
hast ein Zusatzflag das du abfragen darfst ob das jetzt was sinnvolles
ist oder NULL (uu tut das auch PHP bereits für dich).

Gruss Daniela