Grundsätzlich ist das mit dem PrimaryKey kein Problem, man müsste dann nur einiges beachten. Die gängigste Lösung ist folgende Tabelle:
PHP Code:
CREATE TABLE IF NOT EXISTS `cms_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
);
Primary Key liegt auf der ID
Bei der Indizierung wird kein Benutzername mehr benötigt.
Mit diesem Konzept kann der Benutzername - sofern erwünscht - nachträglich ohne weiteres geändert werden.
Doppelte Nutzernamen sind nicht möglich.
Ein weiteres Problem was mir direkt auffällt ist deine Art zu programmieren. Du solltest bei einem Stil bleiben und nicht wechseln. Entweder prozeduraler oder Objekt-orientierter Stil. Am besten eignest du dir die OOP Variante von mysqli an, das ist einfach sinnvoller.
Wenn du mysqli verwendest, solltest du auch direkt deren Prepared statements nutzen, dann fällt das escapen weg und du lernst nochmal n gutes Stück guten Programmierstil dazu.
Weiterhin ist es sinnvoll, dass du deine Datenanbindung abkapselst und in eine externe PHP Datei legst. MVC sagt dir das was ? Wenn du was lernen willst, probiere dich daran ;-) google wird dir zu MVC php schon was sagen können :) Hier auch ein schöner Link dazu :
[Only registered and activated users can see links. Click Here To Register...]
An meinen Vorredner:
"musst du zwischen vorläufigem String-Ende und der Variable einen Punkt setzen"
Die Aussage ist falsch, mit normalen Anführungszeichen muss man das nicht. Beispielswiese ist folgender Code völlig ok:
PHP Code:
$name = "Peter";
echo "Hallo $name";
Allerdings sollte man der Übersicht halber Variablen in Klammern setzen:
PHP Code:
echo "Hallo {$name}";