วันอาทิตย์ที่ 13 มีนาคม พ.ศ. 2559
แก้ปัญหา file size exceeded the maximum size permitted by your PHP
วันนี้เรามาแก้ปัญหาอัพโหลดไฟล์ SQL ขึ้น Server ด้วย phpMyadmin แล้วแจ้ง Error ว่า
"No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16."
วิธีแก้ปัญหา (ผมใช้ XAMPP เป็น Web Server นะครับ)
1. เปิด XAMPP Control Panel ขึ้นมา
2. คลิกปุ่ม Config > PHP (php.ini)
3. หาบรรทัดที่เขียนว่า "upload_max_filesize" แก้ขนาดไฟล์ตามที่ต้องการ > Save
4. Stop Service แล้ว Start Service ใหม่
จบครับ
วันเสาร์ที่ 24 สิงหาคม พ.ศ. 2556
รวมบทความน่าสนใจภาค 3
การใช้งานโปรแกรม Access 2010 : เป็นไฟล์ PowerPoint วิชาฐานข้อมูลนะครับว่ากันตั้งแต่เบื้องต้นไปจนถึงขั้นกลางครับ
การใช้งาน Joomla Version 1.5.x : เป็นไฟล์ PowerPoint เช่นเดียวกันครับ ถึงจะล้าสมัยไปแล้วสำหรับ Joomla Version นี้แต่ก็เหมาะสำหรับผู้เริ่มต้นศึกษา CMS ยอดฮิตอย่าง Joomla ครับ
การตลาด Online [Online Marketing] : เป็นไฟล์ PowerPoint บรรยายในหัวข้อดังนีิ
- การทำการตลาดออนไลน์ เพื่อส่งเสริมการขาย
- การทำการตลาดผ่าน Search Engine
- การทำการตลาดผ่าน Social Network
ขอขอบพระคุณ คุณภาวนา เทียนศิริ จาก บริษัท ไชโย โฮสติ้ง จำกัด ที่ได้ผลิตเอกสารชุดนี้ขึ้นมาครับ
วันศุกร์ที่ 4 มกราคม พ.ศ. 2556
MySQL Data Type คืออะไร ???
สวัสดีครับทุกท่านที่แวะมาเยี่ยมชม
วันนี้เรามาเรียนรู้เรื่อง MySQL Data Type กันว่ามีอะไรบ้างและแต่ละอย่างแตกต่างกันอย่างไร เพื่อที่จะได้เลือก Data Type [ชนิดของข้อมูล] ได้อย่างถูกต้องและเหมาะสมเวลาที่เราทำการออกแบบฐานข้อมูลครับ
บทความชิ้นนี้เขียนขึ้นมาเพราะต้องทำการบ้านส่งอาจารย์ครับ 555+ ก็เลยรวบรวมเอาข้อมูลจากหลาย ๆ เว็บมาปรับปรุงขึ้นใหม่ พร้อมแล้วเราไปดูกันเลยครับว่า Data Type ใน MySQL นั้นมีอะไรบ้าง
Data Type ใน MySQL เราแบ่งหลักๆได้เป็น 3 ประเภท คือ
- Numeric เอาไว้จัดเก็บตัวเลข
- Date and Time เอาไว้จัดเก็บ วัน , เวลา
- String เอาไว้จัดเก็บ ตัวหนังสือ ตัวอักษรต่างๆ
ประเภท Numeric มีดังนี้
| Type | คำอธิบาย | ขนาดพื้นที่ |
| TINYINT(M) | สำหรับเก็บข้อมูลชนิดตัวเลข จำนวนเต็มไม่มีทศนิยม signed คือ -128 ถึง 127 unsigned คือ 0 ถึง 255 | 1 bytes |
| SMALLINT(M) | สำหรับเก็บข้อมูลชนิดตัวเลข จำนวนเต็มไม่มีทศนิยม signed คือ -32768 ถึง 32767 unsigned คือ 0 ถึง 65535 | 2 bytes |
| MEDIUMINT(M) | สำหรับเก็บข้อมูลชนิดตัวเลข จำนวนเต็มไม่มีทศนิยม signed คือ -8388608 ถึง 8388607 unsigned คือ 0 ถึง 16777215 | 3 bytes |
| INT(M) | สำหรับเก็บข้อมูลชนิดตัวเลข จำนวนเต็มไม่มีทศนิยม signed คือ -2147483648 ถึง 2147483647 unsigned คือ 0 ถึง 4294967295 | 4 bytes |
| BIGINT(M) | สำหรับเก็บข้อมูลชนิดตัวเลข จำนวนเต็มไม่มีทศนิยม signed คือ -9223372036854775808 ถึง 9223372036854775807 unsigned คือ 0 ถึง 18446744073709551615 | 8 bytes |
| FLOAT(M,D) | สำหรับเก็บข้อมูลชนิดตัวเลขมีทศนิยม signed คือ -3.402823466E+38 ถึง -1.175494351E-38, 0 unsigned คือ 1.175494351E-38 ถึง 3.402823466E+38 | 4 bytes |
| DOUBLE(M,D) | สำหรับเก็บข้อมูลชนิดตัวเลขมีทศนิยม signed คือ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 unsigned คือ 2.2250738585072014E-308 ถึง 1.7976931348623157E+308 | 8 bytes |
| DECIMAL(M,D) | เปลี่ยนแปลงได้ ขึ้นอยู่กับความยาวของตัวเลข (M) ค่าที่ระบุจำนวนตัวเลขที่ต้องการเก็บ เช่น (M) คือ 30 ก็เก็บเลขได้ 30 หลัก (ตั้งแต่ MySQL 5.0.3) สูงสุดที่ 30 หลัก | (M+7)/8 |
| BIT (M) | ใส่ค่า bit ใส่ได้ ตั้งแต่ 1 ถึง 64 (ตั้งแต่ MySQL 5.0.3) |
สำหรับค่าตัวเลขสามารถกำหนดความยาวของตัวเลขและจำนวนหลังจุดทศนิยมได้ ขึ้นอยู่กับเป็นข้อมูลชนิดใด ในที่นี้จะแทนด้วยตัว
M คือ ค่าความยาวของตัวเลขรวมจุดทศนิยม
D คือ จำนวนตัวเลขหลังจุดทศนิยม
- unsigned คือ ไม่ติดลบ หรือไม่มีเครื่องหมาย
- unsigned zerofill คือ ไม่ติดลบ แต่ว่าหากข้อมูลที่กรอกเข้ามาไม่ครบตามจำนวน หลักที่เรากำหนด ตัว MySQL จะทำการเติม 0 ให้ครบหลักเอง เช่น ถ้ากำหนดให้ใส่ได้ 3 หลัก แล้วทำการเก็บข้อมูล 25 เข้าไป เวลาที่สืบค้นดู เราจะได้ค่าออกมาเป็น 025
- signed คือ ค่าติดลบ หรือมีเครื่องหมาย
ปกติที่เราสร้าง field จะถูกกำหนดเป็น signed โดยอัตโนมัติครับ
ประเภท Date and Time มีดังนี้
| Type | คำอธิบาย | ขนาดพื้นที่ |
| DATE | สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD | 3 bytes |
| TIME | สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผล ออกมาในรูปแบบ HH:MM:SS | 3 bytes |
| DATETIME | สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น (query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS | 8 bytes |
| TIMESTAMP[(M)] | สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ ว่าจะระบุค่า M เป็น 14, 12, 8 หรือ 6 ตามลำดับ สามารถเก็บได้ตั้งแต่วันที่ 1 มกราคม ค.ศ. 1000 ไป จนถึงประมาณปี ค.ศ. 2037 | 4 bytes |
| YEAR[(2|4)] | สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือกโดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่ หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069 | 1 bytes |
ประเภท String มีดังนี้
| Type | คำอธิบาย | ขนาดพื้นที่ |
| CHAR(M) | สำหรับเก็บข้อมูลประเภทตัวอักษร ขนาดตามค่า M แต่ไม่เกิน 255 ตัวอักษร | M bytes |
| VARCHAR(M) | สำหรับเก็บข้อมูลประเภทตัวอักษร ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภทนี้ จะต้องมี การกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดค่าได้ตั้งแต่ 1 - 255 ฟิลด์ชนิดนี้ เหมาะ สำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ นามสกุล (ตั้งแต่ MySQL เวอร์ชั่น 5.0.3 ขึ้นไปสามารถเก็บได้ 0 – 65,535 ตัวอักษร) | L+1 / L+2 bytes |
| TINYTEXT | เป็น case-insensitive สามารถเก็บข้อมูล ได้ 255 ตัวอักษร | L+1 bytes |
| TINYBLOB | เป็น case-sensitive สำหรับการเรียงและเปรียบเทียบ สามารถเก็บข้อมูล ได้ 255 ตัวอักษร | L+1 bytes |
| TEXT | เป็น case-insensitive สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดย สูงสุดคือ 65,535 ตัวอักษร เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ | L+2 bytes |
| BLOB | เป็น case-sensitive สำหรับการเรียงและเปรียบเทียบ สามารถเก็บข้อมูล ได้สูงสุดคือ 65,535 ตัวอักษร | L+2 bytes |
| MEDIUMTEXT | เป็น case-insensitive เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร | L+3 bytes |
| MEDIUMBLOB | เป็น case-sensitive เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร | L+3 bytes |
| LONGTEXT | เป็น case-insensitive เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร | L+4 bytes |
| LONGBLOB | เป็น case-sensitive เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร | L+4 bytes |
| ENUM(‘value1’,’value2’,…) | เป็นการเก็บข้อมูลสตริงเข้าไว้เป็นรายการไว้ก่อน โดยค่าแรกถูกแทนด้วยค่า 1 หากรายการไม่ตรงกับรายการใดเลย จะแทนด้วยค่า 0 หรือจะใส่เป็นค่าตรงๆเลยก็ได้ ข้อมูลชนิดนี้จะช่วยลดพื้นที่การจัดเก็บได้อย่างมาก เหมาะกับการเลือกแบบลิสต์บ็อกซ์ เพราะเลือกได้เพียง 1 ตัวเลือกเท่านั้น ENUM เก็บค่ารายการได้สูงถึง 65535 ตัวเลือก | 1 – 2 bytes |
| SET(‘value1’,’value2’,…) | คล้ายกับ ENUM แต่เลือกรายการได้มากกว่าหนึ่งตัวเลือก จะใช้เลขฐานสองเก็บค่าตัวเลือก โดยรายการแรกมีค่า 1, 2, 4, 8, 16, 32,... ไปเรื่อยๆ ถ้าเลือกรายการไหนก็เอามาบวกกันจะได้ค่าที่จะเก็บบันทึก เหมาะกับการเลือกแบบเช็คบ็อกซ์ เพื่อให้ผู้ตอบเลือกได้มากกว่า 1 ตัวเลือก SET เก็บค่ารายการได้เพียง 64 ตัวเลือก | 8 bytes |
| BOOL | เหมือนกับ TINYINT แต่เก็บค่าเป็น 0 กับ 1 ซึ่ง 0 คือ เท็จ 1 คือ จริง | |
| BINARY(M) | เหมือนกับชนิด CHAR แต่เก็บเป็นแบบ case-insensitive | M bytes |
| VARBINARY(M) | เหมือนกับชนิด VARCHAR แต่เก็บเป็นแบบ case-insensitive | L+1 / L+2 bytes |
L คือ ตัวอักษรที่ใช้จริง
- case-sensitive คือ ตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กมีความหมายแตกต่างกัน
- case-insensitive คือ ไม่คำนึงถึงตัวอักษรตัวพิมพ์ใหญ่หรือพิมพ์เล็ก
แหล่งอ้างอิง
- http://www.webub.com/ชนิดข้อมูลใน_MySQL__Datatype_-448-16.html
- http://www.stepcoding.com/new/PHP/ฟังก์ชัน%20MySQL%20ใน%20PHP/MySQL%20Data%20Types/10-13-131.html
- http://kittiphong-s.cms.psu.ac.th/index.php/-mysql/133-ตารางของชนิดข้อมูล-(Data-Type).html
- http://meewebfree.com/site/start-website-builder/252-mysql-datatype-datafield-mysql5
- http://www.thaiall.com/mysql/indexo.html
- http://dev.mysql.com/doc/refman/5.0/en/data-types.html

