0

最近、JPMaster77 から登録/ログイン スクリプトを入手しました。全体として、うまく機能し、スクリプトが機能するようになりましたが、テーブルに新しい列を「ID」として追加し、それを主キーに変更すると、スクリプトが奇妙になります。

これが私が使用するSQLです

CREATE TABLE users (
 id int(11) primary key,
 username varchar(30),
 password varchar(32),
 userid varchar(32),
 userlevel tinyint(1) unsigned not null,
 email varchar(50),
 timestamp int(11) unsigned not null
);

ご覧のとおり、登録コードが表示されるまで、実際にはうまく機能します。エラー「申し訳ありませんが、エラーが発生したため、ユーザー名テストへの登録を完了できませんでした。後でもう一度お試しください。」誰かが登録しようとするたびにポップアップが表示されますが、これはこのためだと思います. 私はしばらくこれを修正しようとしてきましたが、主キーと自動インクリメントに慣れていません。スクリプトはちょっと長いので、ここにすべて書くよりも Pastebin に投稿したい気分でした。http://pastebin.com/DYRCp3Sc

4

3 に答える 3

1

SQLスクリプトにauto_increment列がまったく表示されません。必要な場合は、テーブル作成クエリはそのようにする必要があります

CREATE TABLE users (
 id int(11) primary key auto_increment  ,
 username varchar(30),
 password varchar(32),
 userid varchar(32),
 userlevel tinyint(1) unsigned not null,
 email varchar(50),
 timestamp int(11) unsigned not null
);

auto_increment を使用しない場合、アプリケーションによって生成された一意の主キーを挿入する必要があります。MySQL は値を挿入しません。また、mysql は挿入時にエラーを出す可能性があります。

于 2013-03-26T07:22:48.423 に答える
0

実際に登録関数を呼び出すコードが表示されません。しかし、テーブルは大丈夫のようです。コンソールでこのテーブルにデータを挿入しようとしましたか? フォームに入力しているのと同じデータを入力して、どうなるかを確認しようとしました。

于 2013-03-26T07:07:21.793 に答える
0

新しいレコードを挿入したいときに、id 主キーと auto_increment がある場合は、 これを試してください:

insert into users (username,password,userid,userlevel,email,timestamp) values
('username','password','userid','userlevel','email','timestamp');

フィールド ID は自動インクリメントされるため省略します。スクリプトのテーブルに挿入する場所でこの変更を行います。

于 2013-03-26T07:12:50.950 に答える