|
|
|
ช่วยดูกานส้าง table login ไห้ด้วยคะ ส้าางแล้ว insert ข้อมูลแล้วมันเกีด error |
|
|
|
|
|
|
|
Code
CREATE TABLE `login` (
`userId` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`priority` int(10) NOT NULL,
PRIMARY KEY (`userId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
แล้วเวลา insert ข้อมูล
Code
INSERT INTO login (userId,password,priority) VALUES ('phone','123','2')
INSERT INTO login (userId,password,priority) VALUES ('Lee','123','1')
มันฟ้องว่า
Error
SQL query:
INSERT INTO login( `userId` , `password` , `priority` )
VALUES (
'phone', '123', '2'
)
MySQL said:
#1062 - Duplicate entry 'phone' for key 1
เมี่อคีกเข้าไปดูลายละเอียด
Error
SQL query:
SELECT *
FROM Array
WHERE CONCAT_WS( "-", `userId` , `password` , `priority` ) = "phone"
ORDER BY `userId` , `password` , `priority`
LIMIT 0 , 30
MySQL said:
#1146 - Table 'mydatabase.array' doesn't exist
มันหมายความว่ายังไงหรอ ไม่เข้าใจ ไม่รู้ว่าผิดต่งไหน ช่วยแก้ไขต่งที่ผิดไห้ด้วยนะคะ
แต่ข้อมูลที่ insert นะมันเข้าไปไน table login นะ แต่ทำไหมมัน ฟ้อง error คะ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2012-07-05 14:44:37 |
By :
Cat |
View :
1609 |
Reply :
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : pumin99 เมื่อวันที่ 2012-07-05 15:02:03
รายละเอียดของการตอบ ::
ไม่ได้ต้องกานดืงข้อมูลคะ ที่เอาไห้ดูคือว่ามัน error คะ
Error
SQL query:
INSERT INTO login( `userId` , `password` , `priority` )
VALUES (
'phone', '123', '2'
)
MySQL said:
#1062 - Duplicate entry 'phone' for key 1
เมี่อคีกเข้าไปดูลายละเอียด
Error
SQL query:
SELECT *
FROM Array
WHERE CONCAT_WS( "-", `userId` , `password` , `priority` ) = "phone"
ORDER BY `userId` , `password` , `priority`
LIMIT 0 , 30
MySQL said:
#1146 - Table 'mydatabase.array' doesn't exist
|
|
|
|
|
Date :
2012-07-05 15:06:27 |
By :
Cat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
PRIMARY KEY (`userId`)
ลองเปลี่ยน โครงสร้างฟิลด์ userId จาก PRIMARY ให้เป็น Index
|
|
|
|
|
Date :
2012-07-05 15:08:02 |
By :
randOmizE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รู้สึกว่า varchar จะเป็น Primary ไม่ได้ครับ
Code (PHP)
`userId` varchar(20) // คุณกำหนดเป็น varchar(20)
แก้ไข
" รู้สึกว่า varchar จะเป็น Primary ไม่ได้ครับ" ผิดครับ
ถ้าเป็น primary key ข้อมูลจะซ้ำไม่ได้ มันจะเออร์เรอร์แบบที่คุณเจอนะครับ
|
ประวัติการแก้ไข 2012-07-05 15:43:49
|
|
|
|
Date :
2012-07-05 15:29:41 |
By :
randOmizE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 5 เขียนโดย : randOmizE เมื่อวันที่ 2012-07-05 15:29:41
รายละเอียดของการตอบ ::
แล้วถ้าหากว่า PK กำหนดเป็น varchar ไม่ได้แต่ table นี้ยังไช้ได้เลีย
CREATE TABLE `login` (
`userId` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`part` text NOT NULL,
`priority` int(5) NOT NULL,
`mode_add` varchar(50) NOT NULL,
`mode_edit` varchar(50) NOT NULL,
`mode_se` varchar(50) NOT NULL,
`se_edit` varchar(200) NOT NULL,
`stuff_id` varchar(10) NOT NULL,
`part1` varchar(100) default NULL,
`counts` int(11) default NULL,
PRIMARY KEY (`userId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
งงงงงงมากคะ
|
|
|
|
|
Date :
2012-07-05 16:12:47 |
By :
Cat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมใช้ประมาณนี้ครับ
Code (PHP)
CREATE TABLE `user` (
`id` VARCHAR( 32 ) NOT NULL ,
`user` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`pass` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`level` ENUM( 'admin', 'user' ) NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE (
`user`
)
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
id เป็น primary key ชนิด varchar(32) ซึ่งจะ md5(time().$user ) มาเป็น id
user เป็น uniqe กันซ้ำ varchar(32)
pass varchar(32)
level เป็น enum แล้วใส่ค่าเข้าไป ตามตัวอย่าง ผมกำหนดเป็น ( 'admin', 'user' ) ก็จะใส่ค่าได้แค่ admin หรือ user ใส่อย่างอื่นไม่ได้
ประมาณนั้น แล้วแต่ใครถนัดอย่างไร
|
|
|
|
|
Date :
2012-07-05 16:18:27 |
By :
randOmizE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ส่วนเรื่องที่ว่ามีข้อมูลอยู่ 1 2 3 แล้วลบ 2 ออก แล้วเวลาเพิ่มข้อมูลเข้าไปใหม่จะให้มันเป็น 2 นั้นทำไม่ได้หรอก
แต่ถ้าทำได้ก็ไม่ควรทำอยู่ดีแหละ เพราะค่าที่เพิ่มเข้าไปใหม่มันควรจะเป็นค่าล่าสุดถึงจะถูกต้องน่ะ และมันก็ง่ายต่อการดูข้อมูลและการเรียงลำดับด้วย
ความเห็นส่วนตัว ผิดพลาดขออภัยนะ
|
|
|
|
|
Date :
2012-07-05 19:19:28 |
By :
บังเอิญผ่านมาเห็น |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|