• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

MySql Fehler!

MACRASSI

Gelbe Schleswiger Reinette
Registriert
21.11.04
Beiträge
1.754
Hi!
Ich habe eine Tabelle erstellt mit volgenden Feldern:

fid | pollid | mid
--------------------

Das Feld "fid" ist der Key und auto_increment.
Jetzt habe ich schon 127 Felder...
Wenn ich dann noch eins hinzufügen möchte,
dann bekomme ich immer diesen Fehler:
#1062 - Duplicate entry '127' for key 1

Weiß jemand was ich machen soll? Wieso kommt denn immer dieser Fehler?
Gruß Rasmus
 

MACRASSI

Gelbe Schleswiger Reinette
Registriert
21.11.04
Beiträge
1.754
Mhm auch google suchen hat nix gebraucht...
Aber das Problem fängt immer von der fid 127 oder darüber an.
Gruß Rasmus
 
Zuletzt bearbeitet:

MACRASSI

Gelbe Schleswiger Reinette
Registriert
21.11.04
Beiträge
1.754
So, der Fehler ist behomen...
Ich hab einfach nochmal die Tabelle erstellt... Und siehe da, es geht...
Gruß Rasmus

Weiß jemand woran das lag?
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
ist jetzt wahrscheinlich zu spät zum eruieren, aber ich kann mir dies fast nur so vorstellen, dass du das fid-feld als int der grösse 1 signed eingerichtet hast. und dann ist er halt beim hochzählen bei an die feld-grösse gestossen (1 byte geht bis 255, mit negativen zahlen bis 127). oder so irgendwie.
 

MACRASSI

Gelbe Schleswiger Reinette
Registriert
21.11.04
Beiträge
1.754
So ich hab da doch noch mal 2 Fragen:

1. Auf welche art muss ich denn das fid Feld stellen damit es so viele wie möglich speichert?

2. Auf welche Art muss ich denn ein Feld stellen damit es ein Passwort verschlüsselt anzeigt?

Gruß Rasmus
 

Mr. Anderson

Gast
MACRASSI schrieb:
So ich hab da doch noch mal 2 Fragen:

1. Auf welche art muss ich denn das fid Feld stellen damit es so viele wie möglich speichert?

2. Auf welche Art muss ich denn ein Feld stellen damit es ein Passwort verschlüsselt anzeigt?

Gruß Rasmus

zu 1. eine id sollte man immer mit INTEGER anlegen der sollte fürs erste reichen ;)

zu2. Die Frage ist wie du dein Passwort verschlüsseln willst. Entweder du machst per php einen MD5 oder ähnliches draus und speicherst es ein einem VARCHAR oder du benutzt die CRYPT Funktion von MySQL. Diese Funktion habe ich aber noch nicht ausprobiert.
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
MACRASSI schrieb:
1. Auf welche art muss ich denn das fid Feld stellen damit es so viele wie möglich speichert?
eigentlich muss du da nichts einstellen, mit einem normalen int-feld kommst du da sehr weit. deshalb klappt es ja jetzt vermutlich auch, während - so meine aus-dem-handgelenk-geschüttelt-these - vorher etwas nicht sauber war und das ganze auf 8bit beschränkt war.
2. Auf welche Art muss ich denn ein Feld stellen damit es ein Passwort verschlüsselt anzeigt?
die verschlüsselung würde ich nicht in der db machen, das kann zu einigen problemen führen. passwörter verschlüsselt man in der applikation, zB in einem php-skript:
beim ablegen des passworts in die DB speicherst du nicht $_REQUEST['password'], sondern, sha1($_REQUEST['password']) . Beim Authentifizieren eines logins vergleichst du dann den Inhalt der DB auch nicht mit dem übermittelten passwort, sondern eben wieder mit sha1($_REQUEST['password'])


oops, viel zu langsam...
 

MACRASSI

Gelbe Schleswiger Reinette
Registriert
21.11.04
Beiträge
1.754
Ah... Ich hab auch schonmal in einer Datenbank gesehen das das Passwort Feld dann so eingestellt ist das man dann nur so viereckige Dinger sieht... und keine Buchstaben...

Gruß Rasmus
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
hmm, schon möglich, aber ich würde das in meiner arroganz mal als windows-sicherheits-mechanismus abtun - passwörter cleartext speichern und einfach im gui mit vierecken ersetzen :D

wie mr anderson oben schon erwähnt hat, kennt mysql anscheinend auch einen CRYPT-'datentyp'. die bedeutung davon kannst du aber wohl auch aus dem umstand ersehen, dass mysql selber die rechte- und passwörter-datenbank nicht so abspeichert, sondern wie bisher den verschlüsselten string als normalen text in die db legt...

Kleiner Hintergrund-Gedanke (ohne anspruch auf jegliche form von richtigkeit...): wenn php mit mysql-kommuniziert, geschieht dies ja zwischen den prozessen hin und her - damit ist eine solche kommunikation prinzipiell abfangbar, auch wenn ich noch nie von einem leak in diesem bereich gehört hätte - es ist aber sicher einfacher abfangbar als innerhalb eines einzelnen prozesses.
wenn nun php den wert selber verschlüsselt, gelangt das unverschlüsselte passwort nur vom webserver zu php, von dort an ist es unverschlüsselt. überlässt man das verschlüsseln der datenbank, geht das passwort unverschlüsselt vom webserver zum php zur datenbank, also ein potentieller angriffspunkt mehr. und jeder eingespaarte angriffspunkt ist - so aus dem handgelenk gesagt - immer ein gewinn...
 

master_p

Gast
Mr. Anderson schrieb:
zu 1. eine id sollte man immer mit INTEGER anlegen der sollte fürs erste reichen ;)

zu2. Die Frage ist wie du dein Passwort verschlüsseln willst. Entweder du machst per php einen MD5 oder ähnliches draus und speicherst es ein einem VARCHAR oder du benutzt die CRYPT Funktion von MySQL. Diese Funktion habe ich aber noch nicht ausprobiert.

Also dann sollte man das Feld aber auch noch auf "UNSIGNED" stellen. Dann wird der INT-Wert nämlich in positiver Richtung verschoben, sodass keine Negativwerte gespeichert werden, aber das will man ja (normalerweise) bei einer ID nicht.

Ich persönlich nutze immer int(11), unsigned als ID-Feld.