วันอาทิตย์ที่ 14 ธันวาคม พ.ศ. 2557

คำสั่ง SQL



ภาษา SQL นั้นไม่เป็น case sensitive (ตัวเล็ก ตัวใหญ่มีค่าเท่ากัน) และในแต่ละคำสั่งจะถูกปิดด้วย ; (semi-colon)

(วิธีการลง SQL ใน Window7 : http://natsusencho.blogspot.com/2012/07/mysql-window7.html)

มาเริ่มกันเลย
การเข้าใช้ให้เราเปิด cmd ขึ้นมาและ

$ mysql -u root -p

จากนั้นใส่ password ลงไป
จะเข้าสู่การใช้

mysql > (เราจะพิมพ์คำสั่งต่างๆลงไป)

ถ้าต้องการออกใช้

mysql > quit

mysql > show databases; แสดง databases ทั้งหมดที่เราสร้างขึ้น

mysql > use <ชื่อ database> เป็นการเข้าใช้ database นั้นๆ

mysql > SELECT database(); ดู database ที่เรากำลังใช้อยู่

mysql > show tables; แสดงตารางทั้งหมดที่เราสร้างขึ้นใน database ที่ use


สร้าง DATABASE
mysql > create database <ชื่อdatabase>;
เช่น create database world;






สร้าง table
mysql > create table <ชื่อtable> (<ชื่อข้อมูล> <ชนิดข้อมูล>, ... );
เช่น create table human (name VARCHAR(20), birth DATE, sex CHAR(1));
ชนิดข้อมูล เช่น
VARCHAR(n) - ข้อมูลชนิด string เก็บแบบ linked list เหมาะสมกับข้อมูลที่มีความยาวที่ไม่แน่นอน
CHAR(n) - ข้อมูลชนิด string เก็บแบบ array เหมาะสมกับข้อมูลที่มีความยาวที่แน่นอน
INT - จำนวนเต็ม
DATE - ข้อมูลชนิดพิเศษของ SQL ใช้เก็บวันที่ มีรูปแบบเป็น YYYY-MM-DD

ดูชื่อและชนิดข้อมูลของแต่ละตาราง
mysql > describe <ชื่อtable>;


การใส่ข้อมูลลงไปใน table




1. ใช้คำสั่ง load data จากไฟล์ที่เราเตรียมไว้ โดย default จะแบ่งเนื้อหาโดยใช้ tab แบบนี้จะมีปัญหาเรื่องการใช้ข้อมูลชนิด NULL ซึ่งใช้ \N แทน
mysql > load data local infile ‘natsu.txt’ into table pet;

2.INSERT ใส่ทีละข้อมูล เหมาะกับข้อมูลที่น้อยๆ ที่เราเพิ่มเติมเข้าไป เช่น
mysql > INSERT INTO pet VALUES (‘natsusencho’, ‘1992-03-25’, ‘M’);

3. *ทำ SQL script คือเตรียมไฟล์คำสั่ง sql ไว้แล้วนำมาทำการ source ทีเดวเช่น
ส่วนตัวแนะนำวิธีนี้เพราะเราเขียนทั้งหมดทีเดียวไม่ต้องมาใส่ทีละคำสั่ง นึกออกให้เสร็จที่เดียวแล้ว run ทีเดียวทั้งหมด
---- file natsu.sql ----
CREATE TABLE IF NOT EXISTS human (
name VARCHAR(20),
birth DATE,
sex CHAR(1) );
INSERT INTO human VALUES
( 'NatsuSencho', '1992-03-25', 'M'),
( 'Slime', '1999-03-03', NULL ),
( ‘HeyFemale’ , ‘1993-12-25’ , ‘F’);
----- file natsu.sql -----
หลังจากสร้างเสร็จแล้วก้ลองใช้คำสั่ง
mysql > source natsu.sql;

ก็จะได้ตาราง world หน้าที่มีข้อมูล 3 ตัว
create table IF NOT EXISTS human
คำว่า IF NOT EXISTS หมายถึงการสร้าง table นี้ถ้ายังไม่มี table นี้ ถ้ามีแล้วก็ไม่ต้องสร้าง

มีสร้างก็ต้องมีลบ การลบ table ใช้คำสั่ง
mysql > DELETE FROM <ชื่อtable>;

หลังจากที่สร้างเป็นแล้วต้องสามารถแก้ไขข้อมูลได้
mysql > UPDATE <ชื่อtable>
SET <ชื่อข้อมูล> = <ข้อมูลใหม่>
WHERE <เงื่อนไขอื่นๆ>;
เช่น UPDATE human SET name = ‘HeyGirl’ WHERE name = ‘HeyFemale’;


การสืบค้นข้อมูล หรือการดูข้อมูล
SELECT <สิ่งที่ต้องการ>
FROM <ชื่อtable>
WHERE <เงื่อนไขอื่นๆ>

เช่นต้องการชื่อของข้อมูลในตาราง human ที่มีมีเพศชาย
SELECT name
FROM human
WHERE sex = ‘M’;
ต้องการดูข้อมูลทั้งหมดในตาราง human [* คือทั้งหมด]
SELECT *
FROM human;

ซึ่งการกำหนดเงื่อนไขนั้นเราสามารถใช้ตัวแปรทางคณิตศาสตร์ตรรกะ มาช่วยได้เช่น
AND และ
OR หรือ
< น้อยกว่า
> มากกว่า
<= น้อยกว่าหรือเท่ากับ
>= มากกว่าหรือเท่ากับ
<> ไม่เท่ากับ
UNION การนำ 2 ตารางมาเชื่อมต่อกันตัดตัวซ้ำ
UNION ALL การนำ 2 ตารางมาเชื่อมกันโดยไม่ตัดตัวซ้ำ
INTERSECT ข้อมูลที่ซ้ำกัน

DISTINCT คือการตัดตัวที่ซ้ำกันออก
เช่น SELECT DISTINCT sex
FROM human;

ORDER BY เรียงลำดับข้อมูล การจัดกลุ่มข้อมูล
เรียงลำดับจากมากไปน้อย (descending order)
เช่น SELECT *
FROM human
ORDER BY name;
เรียงลำดับจากน้อยไปมาก (descending order)
เช่น SELECT *
FROM human
ORDER BY name DESC;
ถ้าต้องการมากกว่าอันนึงก็ย่อมได้
เช่น SELECT *
FROM human
ORDER BY name , sex DESC ;
แบบนี้จะจัดตามชื่อแบบ ascending ก่อนแล้วจะมาจัดเพศแบบ descending ทีหลัง

การคำนวณเกี่ยวกับวันที่
ตัวแปร DATE เป็น string ที่มีการเก็บเป็นรูปแบบ YYYY-MM-DD ตัวแปรชนิด DATE สามารถนำมาเทียบค่ากันได้ในระดับ ASCII
CURDATE() จะเป็น function ที่ส่งค่าออกมาเป็นข้อมูลรูปแบบ DATE (YYYY-MM-DD)
YEAR(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของปี (YYYY)
MONTH(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของเดือน (MM)
DAY(<ข้อมูลชนิดdate>) ส่งค่าออกมาเป็นข้อมูลรูปแบบของวัน (DD)
RIGHT(<ข้อมูลชนิดstring>, <จำนวนตัวเลข>) ส่งค่าออกมาจำนวนเท่ากับที่เราต้องการตัดออกมาจาก string นั้นๆ โดยเริ่มนับจากทางขวา
LEFT(<ข้อมูลชนิดstring>, <จำนวนตัวเลข>) ส่งค่าออกมาจำนวนเท่ากับที่เราต้องการตัดออกมาจาก string นั้นๆ โดยเริ่มนับจากทางซ้าย
ตัวอย่าง
ex1. ต้องการปีของวันปัจจุบัน YEAR( CURDATE() )
ex2. ต้องการเดือนและวันของปัจจุบัน RIGHT( CURDATE(),5 )
[5 ในที่นี้คือนับจากทางขวามือมา YYYY-MM-DD ก็จะได้ ​MM-DD มา]

การใช้ตัวแปร NULL ในเงื่อนไข
ใช้คำสั่ง xxx IS NOT NULL เช่นต้องการดูสิ่งมีชีิวิตที่ไม่มีเพศ
SELECT *
FROM human
WHERE sex IS NOT NULL;

การตั้งชื่อเป็นชื่อที่เราต้องการ
หมายถึงเวลา select บางทีคนทั่วไปอาจจะไม่เข้าใจว่าคืออะไร เราจึงมีคำสั่ง AS ช่วย เช่น
SELECT name AS ‘NAME-SURNAME’
FROM human;


COUNT การนับจำนวน + GROUP BY การจัดกลุ่ม
COUNT ใช้ในการนับจำนวนของตารางต่างๆ จะใช้คู่กับ GROUP BY ได้ดีเพราะจะช่วยในการจัดกลุ่มชุดข้อมูลได้ดีขึ้น
SELECT <อื่นๆ> COUNT(*)
FROM <ชื่อtable>
WHERE <เงื่อนไข>
GROUP BY <จัดกลุ่มโดยใช้อะไร>

เช่นต้องการนับจำนวนคนในแต่ละเพศ
SELECT sex , COUNT(*)
FROM human
GROUP BY sex;
SET การกำหนดตัวแปร
SET @<ชื่อตัวแปร> = <ค่า>
เช่น SET @A1 = ‘Natsu Sencho’;
SET @A2 = ‘1999-09-09’;




การใช้คำสั่ง JOIN
การ JOIN คือการนำตารางที่มีความสัมพันธ์ของข้อมูลในแต่ละฟิลมาเชื่อมโยงกัน
การ JOIN มี 2 แบบคือ






1. INNER JOIN
2. OUTER JOIN |--- LEFT JOIN
|--- RIGHT JOIN

INNER JOIN
คือการ JOIN โดยไม่สนใจค่า NULL จะดูเพียงตัวที่เหมือนกันเท่านั้น
สมมติมีตาราง 2 อันชื่อ Ltable และ ​Rtable นำมา JOIN กันโดยมีข้อมูลที่ซ้ำกันคือ id
-- JOIN โดยใช้ ON
SELECT *
FROM Ltable INNER JOIN Rtable ON Ltable.id = Rtable.id;
-- หรือ JOIN โดยใช้ USING
SELECT *
FROM Ltable INNER JOIN Rtable USING (id);

กรณีพิเศษที่ตัวแปรหรือชื่อ Column ซ้ำกันก็สามาใช้ NATURAL JOIN ได้ อย่างในที่นี้เรารุ้ว่า id นั้นซ้ำกันเราก็ไม่ต้องใส่เงื่อนไขใดๆ แต่ใช้ Natural Join เข้ามาช่วยโดย
SELECT *
FROM Ltable NATURAL JOIN Rtable;

OUTER JOIN
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;

นอกจากวิธีการ JOIN ยังมีวิธีที่เรียกว่า Cartesian Product ซึ่งไม่ได้อทิบายไว้ในทีนี้

ถ้ามีโอกาศจะนั่งทำตัวอย่างให้ดูให้เห็นได้ชัดกว่านี้นะครับ แต่ผมสรุปแบบคร่าวๆ ให้พอดู
รวมคำศัพท์คำสั่งที่เจอเพจนี้

CREATE สร้างdatabase, table
INSERT ใส่ข้อมูล
UPDATE อัพเดตข้อมูล
SELECT ต้องการจะดูอะไรบ้าง
FROM จากที่ไหน
WHERE เงื่อนไขอย่างไร
COUNT(*) นับจำนวนของฟิลข้อมูล
GROUP BY จัดกลุ่มข้อมูล
ORDER BY เรียงลำดับข้อมูลโดย
JOIN เชื่อมตาราง
DISTINCT ตัดตัวซ้ำ
AS ใช้คำใหม่ให้กระทัดรัดขึ้น
SET กำหนดตัวแปร
CURDATE() วันที่ปัจจุบัน
YEAR() ปี
MONTH() เดือน
DAY() วัน
RIGHT() ตัดคำจากทางขวา
LEFT() ตัดคำจากทางซ้าย
* ทั้งหมด
ที่มา http://natsusencho.blogspot.com/2012/08/sql-language.html

วันอาทิตย์ที่ 7 ธันวาคม พ.ศ. 2557

ข้อสอบ O-NET วิชาคอมพิวเตอร์ ปี 2551


ข้อสอบ O-NET วิชาคอมพิวเตอร์ ปี 2551

1.ข้อใดไม่ใช่ระบบปฏิบัติการที่นำมาใช้บนอุปกรณ์พกพาประเภท Smartphone.
   
     ก. Ubumtu                   ข. Iphone os

     ค. Android                   ง. Symbian
     เฉลยข้อ ก

2.ไฟล์ประเภทใดในข้อต่อไปนี้เก็บข้อมูลในลักษณะตัวอักษร.
      ก. ไฟล์เพลง MP 3 (mp 3)
      ข. ไฟล์รูปประเภท JPEG (jpeg)
      ค. ไฟล์แสดงผลหน้าเว็บ (html)
      ง. ไฟล์วีดีโอประเภท Movie (movie)
     เฉลยข้อ ค


3.ลิขสิทธิ์โปรแกรมประเภทรหัสเปิด(Open Source)อนุญาตให้ผู้ใช้ทำอะไรได้บ้าง.
 
      ก. นำโปรแกรมมาใช้งานโดยไม่ต้องเสียค่าลิขสิทธิ์
     
      ข. ทดลองใช้โปรแกรมก่อนถ้าพอใจจึงจ่ายค่าลิขสิทธิ์
      ค. แก้ไขปรับปรุงโปรแกรมเองได้

     ก. ข้อ ก กับ ข้อ ค            ข. ข้อ ข กับ ข้อ ค
     ค. ข้อ ข อย่างเดียว          ง. ข้อ ก อย่างเดียว
     เฉลยข้อ ง

4.ข้อใดเป้นการปฏิบัติที่ถูกต้องตามหลักวิชาการเมื่อค้นคว้าหาข้อมูลจากอินเทอร์เนตมาทำรายงาน.
    ก. คัดลอกเนื้อหาจากเว็บไซต์
    ข. ใช้เนื้อหาจากกระดานสนทนา(Web board)มาใส่ในรายงาน
    ค. นำรูปภาพจากเว็บไซต์มาใส่ในรายงาน
    
    ง. อ้างอิงชื่อผู้เขียนบทความ
     เฉลยข้อ ง


5.ข้อใดเป็นการเรียงลำดับวิวัฒนาการของวงจรคอมพิวเตอร์จากอดีตจนถึงปัจจุบัน

     ก. หลอดสุญญกาศ วงจรไอซี ทรานซิสเตอร์ วงจรรวมความจุสูง 

     ข. ทรานซิสเตอร์ หลอดสุญญากาศ วงจรไอซี วงจรรวมความจุสูง
     ค. หลอดสุญญากาศ ทรานซิสเตอร์ วงจรไอซี วงจรรวมความจุสูง
     ง. ทรานซิสเตอร์ วงจรไอซี หลอดสูญญากาศ วงจรรวมความจุสูง
     เฉลยข้อ ค


6.ทำไมอุปกรณ์คอมพิวเตอร์จึงใช้ระบบเลขฐานสอง
     ก. เนื่องจากอุปกรณ์คอมพิวเตอร์ใช้ภาษาเครื่อง
     ข. เนื่องจากอุปกรณ์คอมพิวเตอร์ไม่เข้าใจภาษามนุษย์
     ค.เนื่องจากอุปกรณ์คอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ทำงานแบบแอนะล็อก
     ง.เนื่องจากอุปกรณ์คอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ทำงานแบบดิจิทัลโดยใช้แรงดันไฟฟ้าแสดงสถานะเพียงสองสถานะ

     เฉลยข้อ ง
7.กระบวนงานในข้อใดเกิดขึ้นเป็นสิ่งแรกเมื่อเปิดเครื่องคอมพิวเตอร์
    ก. เช็คสถานะของอาร์ดแวร์
    ข. โหลดระบบปฏิบัติการเข้าสู่หน่วยความจำหลัก
    ค. หน่วยประมวลผลกลางประมวลชุดคำสั่งในหน่วยความจำหลักแบบแก้ไขได้ ( RAM )
    ง. หน่วยประมวลผลกลางประมวลชุดคำสั่งในหน่วยความจำหลักแบบอ่านได้อย่างเดียว( ROM )
    เฉลยข้อ ง


8.สื่อกลางที่ใช้มากในการสื่อสารข้อมูลในระบบเครือข่ายแลนคือข้อใด

   ก. สายคู่บิดเกลี่ยว
   ข. สายโคแอกเชียล
   ค. สายเส้นใยนำแสง
   ง. สายโทรศัพท์
    เฉลยข้อ ก

9.ข้อมูลสารสนเทศ คืออะไร
    ก. ข้อมูลที่ได้รับการกรอง และเรียบเรียง ที่สามารถนำไปใช้งานได้
    ข. ความเป็นจริงที่ยังเป็นข้อมูลดิบซึ่งไม่ได้ผ่านการประมวลผลใด ๆ
    ค. ข้อมูลที่ประมวลผลแล้ว
    ง. ผลลัพท์ของการทำงาน
     เฉลยข้อ ก


10. ในปัจจุบันนิยมใช้ระบบปฏิบัติการอะไรมากที่สุด
    ก. Microsoft Windows98
    ข. Microsoft Windows ME
    ค. Microsoft Windows XP
    ง. Microsoft Office
     เฉลยข้อ ค

วันอาทิตย์ที่ 23 พฤศจิกายน พ.ศ. 2557

การเขียนโปรแกรม PHP

การเขียนโปรแกรมจะมีอยู่ 2 แบบ

 1.Windows based Application (Desktop Application) 

 2. Web based Apllication

                              


จะมีข้อแตกต่างอย่างเห็นได้ชัดอย่างหนึ่งคือ การเรียกใช้ทรัพยากรของเครื่องต่างกัน
1. Windows based คือโปรแกรมที่ต้องติดตั้งกับเครื่องของผู้ใช้แต่ละคนแต่ละเครื่องโดยที่อาจ จะใช้ฐานข้อมูลเซิร์ฟเวอร์เดียวกัน หรือฐานข้อมูลเครื่องใครเครื่องมันก็แล้วแต่วัตถุประสงค์ของโปรแกรมนั้นๆ หากเป็นกรณีที่ใช้ฐานข้อมูลร่วมกันจะมีการเก็บข้อมูลไว้ที่เซิร์ฟเวอร์ แต่โปรแกรมที่ใช้งานจะอยู่ที่เครื่องใครเครื่องมัน ดังนั้นสเปกคอมพิวเตอร์ที่ใช้จะต้องใกล้เคียงกันตามข้อกำหนดของโปรแกรมนั้นๆ

2. Web based คือโปรแกรมที่ทำงานบนเว็บเซิร์ฟเวอร์โดยรันผ่านโปรแกรมเว็บบราวเซอร์ทั่วไป เช่น Internet Explorer, Mozilla Firefox, Google Chrome, Opera, Safari ฯลฯ ไม่ต้องติดตั้งโปรแกรมหรือสคริปต์ที่พัฒนาขึ้นในแต่ละเครื่อง เพราะจะเรียกใช้งานผ่านเซิร์ฟเวอร์ด้วยเว็บเบราเซอร์ต่างๆ เหมาะสำหรับระบบจัดการข้อมูล และรายงานต่างๆ แต่ไม่เหมาะกับการควบคุมฮาร์ดแวร์เช่นลิ้นชักเก็บเงิน หรือฮาร์ดแวร์อื่นๆ ที่ระบบ Windows based สามารถสั่งงานได้

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

เหตุผลที่ PHP ได้รับความนิยม



                                 


1. เป็นของฟรี ว่ากันว่าสุดยอดของ Web Server ในฝันของผู้ใช้ที่รู้จักคุณค่าของเงินก็คือ ระบบปฏิบัติการ Linux, โปรแกรมเว็บ Apache, โปรแกรมฐานข้อมูล MySQL, และ Server Site Script อย่าง PHP เพราะทุกอย่างฟรีหมด

2. มีความเร็ว อะไรที่เกิดมาทีหลังย่อมได้เปรียบ คำพูดนี้ดูเหมือนจะเป็นจริงเสมอ เพราะ PHP นำเอาข้อดีของทั้ง C, Perl และ Java มาผนวกเข้าด้วยกัน ทำให้ทำงานได้รวดเร็วกว่า CGI หรือแม้แต่ ASP และมีประสิทธิภาพ โดยเฉพาะเมื่อใช้กับ Apache Server เพราะไม่ต้องใช้โปรแกรมจากภายนอก

3. Open Source การพัฒนาของโปรแกรมไม่ได้ยึดติดกับบุคคลหรือกลุ่มคนเล็กๆ แต่เปิดโอกาสให้โปรแกรมเมอร์ทั่วไปได้เข้ามาช่วยกันพัฒนา ทำให้มีคนใช้งานจำนวนมาก และพัฒนาได้เร็วขึ้น

4. Crossable Platform ใช้ได้กับหลายๆระบบปฏิบัติการไม่ว่าบน Windows,Unix, Linux หรืออื่นๆ โดยแทบจะไม่ต้องเปลี่ยนแปลงโค้ดคำสั่งเลย

5. เรียนรู้ง่าย เนื่องจาก PHP ฝังเข้าไปใน HTML และใช้โครงสร้างและไวยากรณ์ภาษาง่ายๆ

6. ใช้ร่วมกับ XML ได้ทันที

7. ใช้ร่วมกับ Database ได้เกือบทุกยี่ห้อ ดังกล่าวไปแล้วข้างต้น

8. ใช้กับระบบแฟ้มข้อมูลได้

9. ใช้ร่วมกับข้อมูลตัวอักษรได้อย่างมีประสิทธิภาพ

10. ใช้กับโครงสร้างข้อมูลได้ทั้งแบบ Scalar, Array, Associative array

11. ใช้กับการประมวลผลภาพได้

ประโยชน์ที่ได้รับจากจาก PHP



                       




              ในปัจจุบัน Web Site ต่างๆได้มีการพัฒนาในด้านต่างๆ อย่างรวดเร็ว เช่น เรื่องของความสวยงามและแปลกใหม่ การบริการข่าวสารข้อมูลที่ทันสมัย เป็นสื่อกลางในการติดต่อ และสิ่งหนึ่งที่กำลังได้รับความนิยม เป็นอย่างมากซึ่ง ถือได้ว่าเป็นการปฏิวัติรูปแบบการขายของก็คือ E-commerce ซึ่งเจ้าของสินค้าต่างๆ ไม่จำเป็นต้องมีร้านค้าจริงและไม่จำเป็นต้องจ้างคนขายของอีกต่อไป ร้านค้าและตัวสินค้านั้น จะไปปรากฏอยู่บน Web Site แทน และการซื้อขายก็เกิดขึ้นบนโลกของ Internet แล้ว PHP ช่วยเราให้เป็นเจ้าของร้านบน Internet ได้อย่างไร PHP เป็นภาษาสคริปต์ที่มีความสามารถสูง สำหรับการพัฒนา Web Site และความสามารถที่โดดเด่นอีกประการหนึ่งของ PHP คือ database enabled web page ทำให้เอกสารของ HTML สามารถที่จะเชื่อมต่อกับระบบฐานข้อมูล (database) ได้อย่างมีประสิทธิภาพและรวดเร็ว จึงทำให้ความต้องการในเรื่องการจัดรายการสินค้าและรับรายการสั่งของตลอดจนการจัดเก็บ ข้อมูลต่างๆ ที่สำคัญผ่านทาง Internet เป็นไปได้อย่างง่ายดาย



รายการระบบฐานข้อมูลที่ PHP สามารถเชื่อมต่อได้คือ

Oracle, Sybase, mSQL, MySQL, SOLID, ODBC, PostgreSQL, Adabas D, FilePro, Velocis, Informix, dbase, Unix dbm

ประวัติความเป็นมาของ PHP


                                 


            PHP ย่อมาจาก Professional Home Page ซึ่งเป็นภาษาจำพวก Script Language คำสั่งต่างๆ จะเก็บอยู่ในไฟล์ที่เรียกว่า สคริปต์ (Scrip) และเวลาใช้งานต้องอาศัยตัวแปรชุดคำสั่ง ซึ่งทำงานโดยการสั่งงานจากเว็บเพจ แต่ไปประมวลผลที่ Web Server สำหรับแสดงเว็บเพจอย่างหนึ่ง ที่จัดอยู่ในกลุ่ม Server Side Script และจะทำงานในฝั่ง Server แล้วส่งการแสดงผลมายัง Browser ของตัว Client นอกจากนี้มันยังเป็น Script ที่ Embed บน HTML อีกด้วย ส่วนเลขที่ต่อท้ายก็หมายถึงรุ่น (version) นั่นเอง และกำลังเป็นที่นิยมกันมากในหมู่นักสร้างเว็บทั่วโลก ตัวอย่างของภาษาสคริปต์ก็ เช่น Java Script, Perl, ASP (Active Server Page) เป็นต้น

              PHP ถือกำเนิดในปี 1994 เดิมทีเป็นเพียงโปรแกรมเล็กๆ ที่นาย Rasmus Lerdorf นำมาใช้งานสำหรับทำ เว็บเพจ resume ของเขา โดยตอนแรกใช้ภาษา Perl แต่กลับพบว่ามันทำงานค่อนข้างช้า จึงได้ลงมือเขียนขึ้นใหม่เองด้วยไวยากรณ์ภาษา C และให้ชื่อว่า "Personal Home Page Tools" ขณะเดียวกันก็ได้พัฒนาส่วนติดต่อกับฐานข้อมูลที่เรียกว่า Form Intepreter (FI) เมื่อเขามีของดีอยู่กับตัวใครๆที่มาเยี่ยมเว็บไซต์ของเขาต่างก็ขอสำเนาโปรแกรมดังกล่าว เพื่อเอากลับไปใช้งานเองบ้าง จนมีคนรู้จักกันดี นี่อาจจะนับเป็น PHP รุ่นที่ 1 ก็น่าจะได้ หลังจากใช้งานไประยะหนึ่งผู้ใช้ก็ร้องขอ นาย Rasmus Lerdorf ให้ขยายความสามารถของโปรแกรมให้มากขึ้น จนใกล้เคียงกับการใช้ CGI (Commom Gateway Interface)ใน Web Server กลายเป็น PHP/FI รุ่นที่ 2


               แต่ก็อีกนั่นแหละเมื่อ PHP เป็นที่นิยมของชนหมู่มาก นาย Rasmus Lerdorf คนเดียวก็ดูเหมือนจะพัฒนาคนเดียวไม่ไหว โชคดีที่ได้ผู้ร่วมงานที่ก้าวเข้ามา ช่วยปรับปรุง เปลี่ยนแปลงกันแบบขนานใหญ่ คือ นาย Zeev Suraski กับ Andi Gutmans ชาวอิสราเอลที่ Lerdorf ถึงกับเอ่ยปากชมว่าเป็นสุดยอดจริงๆ ทั้งสองคนเอา PHP ของ Lerdorf มาเขียนใหม่หมดเลยด้วย C++ และได้อีกสามหนุ่มคือ Stig Bakken,Shane Caraveo และJim Winstrad มาเป็นทีมงานที่สร้าง PHP3 โดยนาย Stig Bakken รับผิดชอบเกี่ยวกับความสามารถในการสนับสนุน Oracle, Shane Caraveo ดูแล PHP บน Windows 9x/NT และ Jim Winstrad คอยตรวจสอบข้อบกพร่องต่างๆอีกครั้ง


               ตอนนี้ Zeev Suraski กับ Andi Gutmans ปัจจุบันร่วมกันพัฒนาต่อเป็น PHP4 โดยตั้งชื่อว่า Zend ซึ่งเป้าหมายคือชิงความเป็นเลิศเหนือ ASP โดยที่ Zend จะเป็น complie script เลย ไม่ใช่ embed script interprete ซึ่งจะทำให้ run ได้เร็วกว่า จะเหมือนกับ concept ของ advance ASP ที่ใช้ VB6 สร้างคือทำเป็น dll ให้หมด ตอนนี้ Zend ได้แจก beta ให้ tester ของเขาแล้ว แต่บอกว่า it would obviously be free for use and open source และดูเหมือนจะ support activex

Personal Home Page Tool (PHP)

  PHP ย่อมาจากคำว่า "Personal Home Page Tool" เป็น Server Side Script ที่มีการทำงานที่ฝั่งของเครื่องคอมพิวเตอร์ Server ซึ่งรูปแบบในการเขียนคำสั่งการทำงานนั้นจะมีลักษณะคล้ายกับภาษา Perl หรือภาษา C และสามารถที่จะใช้ร่วมกับภาษา HTML ได้อย่างมีประสิทธิภาพ ซึ่งจะทำให้รูปแบบเว็บเพจมีความสามารถเพิ่มขึ้นในด้านของการเขียนโปรแกรม ในการสร้างเว็บจะใช้ Script อยู่ 2 แบบด้วยกันคือ


- Server-Side Script เป็นลักษณะของภาษาที่ทำงานบนเครื่อง Server เช่น CGI, ASP


- Client-Side Script เป็นลักษณะของภาษาที่ทำงานบนเครื่องผู้ใช้เช่น JavaScript, VBScript






ความสามารถของ PHP นั้น สามารถที่จะทำงานเกี่ยวกับ Dynamic Web ได้ทุกรูปแบบ เหมือนกับ CGI หรือ ASP ไม่ว่าจะเป็นการดูแลจัดการระบบฐานข้อมูล ระบบรักษาความปลอดภัยของเว็บเพจ การรับ - ส่ง Cookies เป็นต้น

      แต่ที่เป็นคุณสมบัติเด่นของ PHP ก็น่าจะเป็นการติดต่อกับโปรแกรมจัดการระบบฐานข้อมูล ที่มีอยู่มากมาย ซึ่งฐานข้อมูลที่ PHP สนับสนุนมีดังนี้


Adabas D                             InterBase Solid                       Microsoft Access


dBase                                   mSQL                                          Sybase


Empress                              MySQL                                        Velocis


FilePro                                Oracle                                          Unix dbm


Informix                           PostgreSQL                                  SQL Server