วันอังคารที่ 16 ธันวาคม พ.ศ. 2557

คำสั่ง sql

คำสั่ง sql


สร้าง DATABASE

mysql > create database  <ชื่อdatabase>;
 เช่น create database world;

การลบ table ใช้คำสั่ง

 mysql > DELETE FROM <ชื่อtable>;

ก้ไขข้อมูลได้

 mysql > UPDATE <ชื่อtable> 
  SET <ชื่อข้อมูล> = <ข้อมูลใหม่>
  WHERE <เงื่อนไขอื่นๆ>;
 เช่น UPDATE human SET name = ‘HeyGirl’ WHERE name = ‘HeyFemale’;

การสืบค้นข้อมูล หรือการดูข้อมูล

 SELECT <สิ่งที่ต้องการ>
 FROM   <ชื่อtable>
 WHERE <เงื่อนไขอื่นๆ>

 ORDER BY เรียงลำดับข้อมูล การจัดกลุ่มข้อมูล
เรียงลำดับจากมากไปน้อย (descending order)
เช่น SELECT *
 FROM   human
 ORDER BY name;

LEFT JOIN

 คือการ JOIN โดยใช้ตัวทางซ้ายเป็นหลักคือ จะแสดงตัวทางซ้ายทุกตัวและนำข้อมูลขวามาเชื่อม
 SELECT *
 FROM Ltable LEFT JOIN Rtable ON Ltable.id = Rtable.id;

RIGHT JOIN

 คือการ JOIN โดยใช้ตัวทางขวาเป็นหลักคือ จะแสดงตัวทางขวาทุกตัวและนำข้อมูลขวามาเชื่อม
 SELECT *
 FROM Ltable RIGHT JOIN Rtable ON Ltable.id = Rtable.id;

คำสั่งใช้ใหม่และฟังก์ชัน

6. คำสั่งใช้ใหม่และฟังก์ชัน



                  คำสั่งใช้ใหม่ (reuse code) นำไปสู่ความตรงกัน ความน่าเชื่อถือ การบำรุงรักษาได้สะดวก โดยเริ่มจากเทคนิคแบบโมดูลและคำสั่งใช้ใหม่  เริ่มต้นการใช้ require () และ include () เพื่อใช้คำสั่งเดียวกันบนมากกว่าหนึ่งเพจ นี่เป็นคำอธิบายความเหนือกว่าของ server side include
คำสั่งใช้ใหม่

                   เป้าหมายหนึ่งของวิศวกรซอฟต์แวร์คือ การใช้คำสั่งใช้ใหม่ แทนที่การเขียนคำสั่งใหม่ เนื่องจากคำสั่งใช้ใหม่ ลดต้นทุน เพิ่มความน่าเชื่อถือ และปรับปรุงความตรงกันได้สะดวก ในทางทฤษฏี โครงงานใหม่ได้รับการสร้างขึ้นมาโดยการรวมส่วนชุดคำสั่งที่มีอยู่มาใช้ใหม่ และด้วยการพัฒนาน้อยที่สุด

การจัดกลุ่มคำสั่งเข้าสู่ไฟล์


ขั้นตอนแรกในการใช้คำสั่งใหม่คือ กำหนดปัจจัยในพิจารณาเลือกสิ่งที่ควรรวมและแยก มีข้อพิจารณา

จัดกลุ่มการทำงานร่วม


                        การเขียนโปรแกรมจะแบ่งการทำหน้าที่ออกเป็นฟังก์ชันให้ทำงานคนละหน้าที่ จากนั้นจึงรวมฟังก์ชันที่ทำงานสัมพันธ์กันให้อยู่ในไฟล์เดียวกันเพื่อความสะดวกในการค้นหา เช่น ฟังก์ชันแสดงส่วนหัวของเพจ ส่วนล่างของเพจ และเมนู สามารถรวมเข้าในไฟล์สำหรับการแสดงผลเพจ รวมทั้งไม่ต้องกลัวว่าในไฟล์มีฟังก์ชันไม่มาก
ฟังก์ชันใน PHP

                       ฟังก์ชันในโปรแกรมส่วนใหญ่ได้รับการเรียกคำสั่งเพื่อทำงานอย่างเดียว สิ่งนี้ทำให้คำสั่งอ่านได้ง่ายและยอมให้ใช้คำสั่งใหม่แต่ละครั้งเมื่อต้องการทำงานเดียวกัน

                     ฟังก์ชันเป็นโมดูลเก็บคำสั่งที่กำหนดการเรียกอินเตอร์เฟซ ทำงานเดียวกัน และตัวเลือกส่งออกค่าจากการเรียกฟังก์ชัน คำสั่งต่อไปเป็นการเรียกฟังก์ชันอย่างง่าย
my_function ();

คำสั่งเรียกฟังก์ชันชื่อ my_function ที่ไม่ต้องการพารามิเตอร์ และไม่สนใจค่าที่อาจจะส่งออกโดยฟังก์ชันนี้


                      ฟังก์ชันจำนวนมากได้รับการเรียกด้วยวิธีนี้ เช่น ฟังก์ชัน phpinfo () สำหรับแสดงเวอร์ชันติดตั้งของ PHP สารสนเทศเกี่ยวกับ PHP การตั้งค่าแม่ข่ายเว็บ ค่าต่างๆ ของ PHP และตัวแปร ฟังก์ชันนี้ไม่ใช้พารามิเตอร์และโดยทั่วไปไม่สนใจค่าส่งออก ดังนั้นการเรียก phpinfo () จะประกอบขึ้นดังนี้

การควบคุมข้อความ และนิพจน์ปกติ

5. การควบคุมข้อความ และนิพจน์ปกติ




                การประยุกต์กับข้อความของ PHP สำหรับการจัดรูปแบบและควบคุมข้อความ จะกล่าวถึงการใช้ฟังก์ชันข้อความ หรือฟังก์ชันนิพจน์ปกติ (regular expression) เพื่อค้นหาคำ วลี หรือรูปแบบอื่นภายในข้อความ

              ฟังก์ชันเหล่านี้มีประโยชน์ในหลายบริบท เช่น การจัดรูปแบบนำเข้าแล้วจัดเก็บในฐานข้อมูล ฟังก์ชันค้นหามีประโยชน์มากเมื่อสร้างโปรแกรม

5.1ชุดตัวอักษรและ Unicode

                  ตามปกติ PHP นำเสนอข้อความเป็นตัวอักษร 8 บิตตาม ISO-8859-1 ซึ่งสามารถแสดงได้ 256 ตัวอักษร ดังนั้นจึงไม่สามารถแสดงพยัญชนะที่ต้องการมากกว่านี้ได้ เช่น จีนหรือญี่ปุ่นได้

              PHP มีส่วนขยาย mbstring ช่วยแก้ไขปัญหานี้ ก่อนอื่นควรเรียนรู้เกี่ยวกับ "ชุดตัวอักษร" (Character Set หรือ charset) และการทำงานของคอมพิวเตอร์กับพยัญชนะต่างๆ

5.2การจัดรูปแบบข้อความ


ตามปกติต้องมีการปรับข้อความของผู้ใช้เล็กน้อย (จาก ฟอร์ม HTML) ก่อนการใช้

การตัดข้อความ

              ขั้นตอนแรกในการปรับคือการตัด whitespace ส่วนเกินจากข้อความ ถึงแม้ว่าสิ่งนี้ไม่สำคัญแต่มีประโยชน์ถ้ากำลังเก็บข้อมูลในไฟล์หรือฐานข้อมูล หรือเปรียบเทียบข้อความ
PHP มี 3 ฟังก์ชันสำหรับวัตถุประสงค์นี้ ฟังก์ชัน trim () ใช้ปรับปรุงข้อมูลนำเข้าดังนี้
$name = trim($name);

              ฟังก์ชัน trim () ตัด whitespace จากเริ่มต้นและท้ายข้อความ จากนั้นส่งออกข้อความผลลัพธ์ ตัวอักษรที่ถูกตัดคือ บรรทัดใหม่ (\n) และช่องว่าง

              ฟังก์ชัน ltrim () กำจัด whitespace เฉพาะจากเริ่มต้นข้อความ ฟังก์ชัน chop() กำจัด whitespace จากท้ายข้อความ

5.3การทำงานกับข้อความ


                  PHP มีหลายฟังก์ชันในการควบคุมและประมวลผลข้อความ รวมทั้งมีหลายฟังก์ชันได้รับการ overload เมื่อเปิดโมดูล mbstring สำหรับ multi-byte

การดึงสารสนเทศ


                  PHP มีฟังก์ชันจำนวนหนึ่งในการดึงสารสนเทศของข้อความ ได้แก่ ความยาวและตำแหน่งภายในชุดตัวอักษร

ฟังก์ชัน strlen (mb_strlen)

                        ฟังก์ชัน strlen () สามารถตรวจสอบความยาวของข้อความด้วยการนับตัวอักษร

strlen("กุหลาบ สายประดิษฐ์ เจ้าของนามปากกา ศรีบูรพา");
ข้อความนี้นับได้ 43 ตัวอักษร
 mb_strlen() มีตัวเลือกการเข้ารหัสมีไวยากรณ์คือ
int mb_strlen(string input, string encode);
 encode คือ การเข้ารหัส เช่น UTF-8

5.4นิพจน์ปกติ


                     PHP สนับสนุนไวยากรณ์นิพจน์ปกติ (Regular Expression) 2 รูปแบบ คือ POSIX และ Perl รูปแบบ POSIX ของนิพจน์ปกติ ได้รับการคอมไพล์ไปยัง PHP ตามค่าเริ่มต้น แต่สามารถใช้รูปแบบ Perl โดยการคอมไพล์ในไลบรารี PCRE (Perl - Compatible Regular Expression) ในบทเรียนนี้จะกล่าวถึงรูปแบบ POSIX ส่วนรูปแบบ Perl หรือการเรียนรู้เกี่ยวกับ PCRE สามารถอ่านได้จากคู่มือบนเว็บที่ http://au3.php.net/manual/en/ref.pcre.php


                          การใช้ฟังก์ชันข้อความมีความจำกัดในค้นหา ถ้าต้องทำการจับคู่ซับซ้อนควรใช้นิพจน์ปกติที่มีประสิทธิภาพดีกว่า นิพจน์ปกติเรียนรู้ได้ลำบากในตอนต้นแต่สามารถใช้ประโยชน์ได้มาก

วันอังคารที่ 2 ธันวาคม พ.ศ. 2557

การทำงานกับ Array

4. การทำงานกับ Array


           array ใน PHP มีความแตกต่างจากภาษาอื่นคือ สามารถตั้งชื่อดัชนีเป็นข้อความ เรียกว่า associative array นอกเหนือจากการใช้ตัวเลข การเก็บข้อมูลใน array สามารถเป็นตัวเลข ข้อความ รวมถึง array จึงทำให้การประยุกต์มีประสิทธิภาพ



5. การควบคุมข้อความ และนิพจน์ปกติี่


             การประยุกต์กับข้อความของ PHP สำหรับการจัดรูปแบบและควบคุมข้อความ จะกล่าวถึงการใช้ฟังก์ชันข้อความ หรือฟังก์ชันนิพจน์ปกติ (regular expression) เพื่อค้นหาคำ วลี หรือรูปแบบอื่นภายในข้อความ

             ฟังก์ชันเหล่านี้มีประโยชน์ในหลายบริบท เช่น การจัดรูปแบบนำเข้าแล้วจัดเก็บในฐานข้อมูล ฟังก์ชันค้นหามีประโยชน์มากเมื่อสร้างโปรแกรม

ชุดตัวอักษรและ Unicode


                ตามปกติ PHP นำเสนอข้อความเป็นตัวอักษร 8 บิตตาม ISO-8859-1 ซึ่งสามารถแสดงได้ 256 ตัวอักษร ดังนั้นจึงไม่สามารถแสดงพยัญชนะที่ต้องการมากกว่านี้ได้ เช่น จีนหรือญี่ปุ่นได้

               PHP มีส่วนขยาย mbstring ช่วยแก้ไขปัญหานี้ ก่อนอื่นควรเรียนรู้เกี่ยวกับ "ชุดตัวอักษร" (Character Set หรือ charset) และการทำงานของคอมพิวเตอร์กับพยัญชนะต่างๆ

ASCII


             การพัฒนาคอมพิวเตอร์ในตอนต้นได้สร้างการจับคู่ระหว่างรหัสดิจิตอลกับตัวอักษรพิมพ์ได้ แต่ไม่ค่อยเหมาะสมกับธรรมชาติระบบไบนารีของคอมพิวเตอร์ ในปี 1963 American Standard Association ได้ประกาศมาตรฐาน American Standard Code for Information Interchange หรือ ASCII โดยเป็นตัวอักษร 7 บิตที่ครอบคลุมตัวอักษรลาตินที่ใช้เป็นพยัญชนะภาษาอังกฤษ ตัวเลข เครื่องหมาย และสัญลักษณ์ทางการเงิน
               ระบบนี้ไม่สามารถรองรับภาษาในยุโรปตะวันตก เช่น ฝรั่งเศส สเปน รวมถึงภาษา ไซริลลิค อาร์เมเนียและฮิบรู

Unicode


                Unicode (มาจาก Universal Code) ได้รับการพัฒนาตั้งแต่ทศวรรษ 1980 เพื่อให้ครอบคลุมทุกภาษา ต่อมาได้กลายเป็น ISO 10464

                 มาตรฐานเริ่มแรกเป็นตัวอักษร 16 บิตที่สอดคล้องกับตัวอักษร ASCII ใน 127 สล๊อตแรก นอกจากจะสนับสนุนพยัญชนะลาตินแล้ว ยังสนับสนุนภาษาอื่น เช่น อาเมเนีย กรีซ ไทย จีน ญี่ปุ่น และเกาหลีด้วย

                 ตัวอักษร 16 บิตนี้ยังไม่สามารถรองรับตัวอักษรในภาษาจีน ญี่ปุ่น และเกาหลี ที่มีมากกว่า 70,000 ตัวอักษรได้ จึงมีการพัฒนาเป็นระบบ 32 บิตทำให้สามารถรองภาษาปัจจุบันและภาษาที่ตายแล้วได้ ระบบนี้ไม่เพียงรองรับมาตรฐาน 16 บิตและ 32 บิตแล้ว ยังรองรับตัวอักษรบิตเดียวด้วย
การเข้ารหัส unicode ที่ใช้กันมากคือ


  • UTF-7 เป็นการเข้ารหัส 7 บิตสำหรับการรองรับ ASCII 7 บิตและใช้อีก 1 หรือ 2 สล๊อตเพื่อระบุไบต์ขยายสำหรับตัวอักษรอื่น
  • UTF-8 เป็นการเข้ารหัส ASCII เต็มใน 127 สล๊อตแรกและใช้ schema เข้ารหัสส่วนที่เหลือ
  • UTF-16 เป็นการเข้ารหัสคำ 16 บิต ภาษาหลักยังคงอยู่ใน 16 บิตแรก
  • UTF-32 เป็นการเข้ารหัสคำ 2 เท่า (double word หรือ DWORD) 32 บิต นอกจากนี้ยังสนับสนุน หลายตัวอักษร DWORD สำหรับตัวอักษรเพิ่มเติมในอนาคต

3. การทำงานไฟล์ และไดเรคทอรี


               เมื่อทราบถึงไวยากรณ์เบื้องต้น การเข้าถึงและควบคุมข้อมูลภายในฟอร์ม HTML ต่อไปค้นหาวิธีการเก็บสารสนเทศเป็นไฟล์ข้อความ (text file) สำหรับการใช้ต่อไป โดยจะเป็นการเก็บและโหลดด้วยการเขียนลงไฟล์และอ่าน เมื่อมีปริมาณข้อมูลมากต้องใช้ระบบจัดการฐานข้อมูล เช่น MySQL



การเปิดไฟล์


               การเปิดไฟล์ใน PHP ใช้ฟังก์ชัน fopen ไฟล์ที่เปิดต้องระบุลักษณะการเปิดหรือโหมดไฟล์ (file mode)

โหมดไฟล์


                ระบบปฏิบัติการบนแม่ข่าย จำเป็นต้องทราบถึงการทำงานกับไฟล์ที่มีการเปิด โดยต้องทราบว่าถ้าไฟล์ได้รับการเปิดโดยอีกสคริปต์ ขณะที่มีการเปิดและทำงาน ถ้าผู้เปิด (เจ้าของสคริปต์) มีสิทธิในการทำงานนั้น

                โดยเฉพาะอย่างยิ่ง โหมดไฟล์ไห้กลไกกับระบบปฏิบัติการในการหาวิธีควบคุมการเข้าตามคำขอจากบุคคล หรือสคริปต์และวิธีการตรวจสอบการเข้าถึงและสิทธิกับไฟล์เฉพาะเจาะจง

ทางเลือกในการทำงานเมื่อเปิดไฟล์มี 3 ทางเลือก


  • เปิดไฟล์สำหรับอ่านอย่างเดียว เขียนอย่างเดียว หรือทั้งการอ่านและการเขียน

  • ถ้าเขียนไฟล์ อาจจะมีการเขียนทับข้อมูลเดิมของไฟล์ หรือเพิ่มข้อมูลต่อท้ายไฟล์

  • ถ้ากำลังพยายามเขียนไฟล์บนระบบที่ต่างกันระหว่างไฟล์ไบนารีกับไฟล์ข้อความ ควรระบุ

เปิดไฟล์สำหรับ FTP หรือ HTTP

  • นอกจากการเปิดไฟล์สำหรับการอ่านและเขียนแล้ว สามารถเปิดไฟล์ผ่าน FTP และ HTTP ด้วยฟังก์ชัน fopen()
  • ถ้าชื่อไฟล์เริ่มต้นด้วย ftp:// การเชื่อมต่อ FTP ในโหมด Passive จะได้รับการเปิดด้วยแม่ข่ายตามการระบุและพอยเตอร์เพื่อเริ่มต้นไฟล์ที่ส่งออก
  • ถ้าชื่อไฟล์เริ่มต้นด้วย http:// การเชื่อมต่อ HTTP จะได้รับการเปิดด้วยแม่ข่ายตามการระบุและพอยเตอร์ที่ตอบสนองการส่งออก เมื่อใช้โหมด HTTP ต้องมี slash ต่อท้ายบนชื่อไดเรคทอรี
  • เมื่อระบุตามรูปแบบหลัง (ไม่มี slash) แม่ข่ายเว็บ จะใช้ HTTP redirect เพื่อส่งไปยัง address แรก (มี slash) เหมือนความพยายามของ browser
  • ฟังก์ชัน fopen() ไม่สนับสนุน HTTPredirect ดังนั้นต้องระบุ URL ที่อ้างถึงไดเรคทอรีกับ slash ท้าย 
  • ชื่อโดเมนใน URL ไม่มีผลจากตัวพิมพ์ แต่พาร์ทและชื่อไฟล์มีผล


ปัญหาการเปิดไฟล์


             ถ้าการเรียก fopen() ล้มเหลว ฟังก์ชันจะส่งออก FALSE ทำให้สามารถทำงานกับความผิดพลาด แบบผู้ใช้คุ้นเคย (user-friendly) โดยการปิดข่าวสารผิดพลาดของ PHP และกำหนดคำอธิบายที่สื่อความหมายเอง

การปิดไฟล์


           เมื่อเสร็จสิ้นการใช้ไฟล์ ควรปิดไฟล์ด้วยฟังก์ชัน fclose ()
fclose ($fp);

            ฟังก์ชันนี้ส่งออก TRUE ถ้าปิดสำเร็จ หรือ FALSE ถ้าปิดไม่ได้ ความผิดพลาดโดยทั่วไปเกิดขึ้นน้อยกว่าการเปิดไฟล์ ดังนั้นในกรณีที่จึงเลือกไม่ทดสอบ

การแปลงประเภทข้อมูล

การแปลงประเภทข้อมูล

               ตามที่ได้กล่าวไว้ว่า PHP เป็นภาษา richly type และ engine สามารถแปลงระหว่างประเภทข้อมูลต่างกันในเวลาเรียกใช้

                PHP สามารถแปลงหรือเจาะจงประเภทข้อมูลได้



วิธีพื้นฐาน


                 วิธีพื้นฐานในการแปลงประเภทข้อมูลตัวแปรมี 2 วิธีคือ  

การแปลงประเภทเชิงนัยยะ


                   การแปลงเชิงนัยยะ (implicit conversion) เป็นการประเภทข้อมูลที่เกิดขึ้นโดย PHP engine อย่างอัตโนมัติ เมื่อมีการประมวลผล PHP จะกำหนดประเภทข้อมูลให้ตัวแปรให้ตามความเหมาะสม


  • การคำนวณเลขคณิต ถ้ามี operand ที่เป็น integer กับอีกตัวเป็น float จากนั้นตัวแรกจะได้รับการประเมินเป็น float ถ้า operand เป็น string และอีกตัวเป็น integer กรณีนี้ PHP จะแปลง string เป็น integer ก่อนการคำนวณ

  • นิพจน์ Boolean สำหรับกรณีการประเมินนิพจน์ Boolean ผลลัพธ์ที่เกิดขึ้น PHP จะแปลงเป็น Boolean ก่อนทำงานต่อไป

  • เมธอดที่ต้องการ string เมธอดหรือ operator เช่น echo, print หรือ string concatenation operator (.) ต้องการอากิวเมนต์หรือ operand เป็น string ในกรณีนี้ PHP จะแปลงตัวแปรที่ไม่ใช่ข้อความให้เป็นข้อความ

การแปลงประเภทเชิงประจักษ์


               ถึงแม้ว่า PHP จะแปลงตัวแปรให้อย่างอัตโนมัติ แต่ยังมีทางเลือกในการระบุประเภทข้อมูลได้เองด้วยการบังคับให้ภาษาแปลงประเภทข้อมูลโดยทำในสิ่งที่เรียกว่า type cast การกำหนดให้เติมหน้าตัวแปรด้วยประเภทข้อมูลในวงเล็บ จากนั้น PHP จะพยายามแปลงให้


  1. (int), (integer) แปลงเป็นเลขจำนวนเต็ม integer
  2. (float), (double), (real) แปลงเป็นเลขทศนิยม float
  3. (string) แปลงเป็นข้อความ string
  4. (bool), (boolean) แปลงเป็นค่า Boolean
  5. (array) แปลงเป็น array
  6. (object) แปลงเป็น object

PHP เบื้องต้น

PHP เบื้องต้น

1. เริ่มต้นด้วย PHP

            PHP เป็นภาษาตัวแปลสคริปต์ หมายความว่า language engine เรียกใช้สคริปต์ที่เขียนขึ้นโดยไม่มีขั้นตอนกลางในการคอมไพล์ หรือไปเป็นรูปแบบไบนารี สคริปต์ส่วนใหญ่ที่ใช้สร้างโปรแกรมประยุกต์เว็บอยู่ในที่เดียวกับไฟล์ HTML ตามปกติไฟล์เก็บสคริปต์จะเก็บเป็นนามสกุล .php ถึงแม้ว่าบุคคลทั่วไปจะใช้นามสกุลเก่าคือ .php3 และ .phtml พื้นที่เก็บไฟล์เหล่านี้จะขึ้นกับการตั้งค่าคอนฟิกให้แม่ข่ายเว็บส่งผ่านไฟล์เหล่านี้ไปยังตัวแปร PHP พื้นที่จัดเก็บไฟล์หรือเอกสารนี้ได้รับอ้างถึงในฐานะ document root



2. ภาษา PHP

        ต่อไปเป็นการทำความรู้จักภาษาเกี่ยวกับการแปลงประเภทข้อมูล ตัวแปรและการควบคุม จากนั้นเรียนรู้เกี่ยวกับ operator และคำสั่งโครงสร้างควบคุมทางตรรกะของภาษาสำหรับการสร้างสคริปต์

            ประเภทข้อมูล

              การทำงานกับประเภทข้อมูลของ PHP แตกต่างจากภาษาอื่นเล็กน้อย โดย PHP เป็นภาษา richly typed ที่ตัวแปรไม่ต้องมีการประกาศเป็นประเภทข้อมูลเจาะจง เพราะ engine กำหนดประเภทที่ใช้ตามกฎ บางครั้งเรียกสิ่งนี้ว่าประเภทข้อมูลไดนามิคส์  

            PHP สนับสนุนประเภทข้อมูล

  • integer
  • float หรือ double
  • string
  • boolean
  • array
  • object