PHP Class Connect Database
เพิ่ม ลบ แก้ไข ข้อมูล ด้วยคลาส กับ PHP
เป็นคลาส ที่ผมคิดค้นขึ้นมา ซ้ำกับใครก็โทษทีนะค๊าบ เอาล่ะเรามาเริ่มกันเลย
- config.php
- J_MySQL.php
สร้างตารางที่มีฟีลด์ตามนี้ครับ
เมื่อสร้างเสร็จแล้วเราก็มาลุยกันเลย
เริ่มต้นด้วยการ INSERT
- insert.php
- select.php
- update.php
- delete.php
ถ้าไม่เข้าใจตรงไหนถามได้เลยนะครับ
จะพยายามแวะมา อธิบายเพิ่มเติม ^^"
เป็นคลาส ที่ผมคิดค้นขึ้นมา ซ้ำกับใครก็โทษทีนะค๊าบ เอาล่ะเรามาเริ่มกันเลย
- config.php
<? DEFINE("_host", "localhost" ); // host name ชื่อโฮสต์ DEFINE("_db_user", "root" ); // database user ชื่อผู้ใช้งานดาต้าเบส DEFINE("_db_pass", "1234" ); // database pass รหัสผ่าน DEFINE("_db_name", "test" ); // database name ชื่อดาต้าเบส ?>
- J_MySQL.php
<? /******************************************************************** (-/\-) Create by :: Nattapong Pradabsook, Surin, Thailand Date :: 29/08/2010 Good luck :'] ********************************************************************/ class J_SQL { var $db_host; var $db_user; var $db_pass; var $db_name; var $db_connect; function J_SQL() { $this->db_host = _host; $this->db_user = _db_user; $this->db_pass = _db_pass; $this->db_name = _db_name; } //ฟังก์ชั่นติดต่อฐานข้อมูล function J_ConnectDB() { $this->db_connect = @mysql_connect($this->db_host,$this->db_user,$this->db_pass) or die(mysql_error()); } //ฟังก์ชั่นเลือกฐานข้อมูล function J_SelectDB() { @mysql_select_db($this->db_name) or die(mysql_error()); } //ฟังก์ชั่นที่ทำให้ MySQL แสดงอักขระเป็น tis620 function set_char_tis620() { $cs1 = "SET character_set_results=tis620"; $cs2 = "SET character_set_client = tis620"; $cs3 = "SET character_set_connection = tis620"; @mysql_query($cs1) or die('Error query: ' . mysql_error()); @mysql_query($cs2) or die('Error query: ' . mysql_error()); @mysql_query($cs3) or die('Error query: ' . mysql_error()); } //ฟังก์ชั่นที่ทำให้ MySQL แสดงอักขระเป็น utf8 function set_char_utf8() { $cs1 = "SET character_set_results=utf8"; $cs2 = "SET character_set_client = utf8"; $cs3 = "SET character_set_connection = utf8"; @mysql_query($cs1) or die('Error query: ' . mysql_error()); @mysql_query($cs2) or die('Error query: ' . mysql_error()); @mysql_query($cs3) or die('Error query: ' . mysql_error()); } //ฟังก์ชั่นเรียกดูข้อมูลในฐานข้อมูล คืนค่าเป็น อะเรย์ function J_Select($fieldNames,$tableName) { $sql = "SELECT ".$fieldNames." FROM ".$tableName; $rs = @mysql_query($sql) or die(mysql_error()); while($row = @mysql_fetch_array($rs)) { $array[] = $row; } return $array; } //ฟังก์ชั่นเพิ่มข้อมูลลงในฐานข้อมูล function J_Insert($fieldsAndValues,$tableName) { $sql = "INSERT INTO ".$tableName; $f = "("; $val = " VALUES("; for($i = 0 ; $i < count($fieldsAndValues);$i++) { $f .= key($fieldsAndValues); if($i != (count($fieldsAndValues)-1)) $f .= ","; $val .= "'".$fieldsAndValues[key($fieldsAndValues)]."'"; if($i != (count($fieldsAndValues) - 1)) $val .= ","; next($fieldsAndValues); } $f .= ")"; $val .= ")"; $sql .= $f.$val; return @mysql_query($sql) or die(mysql_error()); } //ฟังก็ชั่นปรับปรุงข้อมูลในฐานข้อมูล function J_Update($fieldsAndValues,$key,$tableName) { $sql = "UPDATE ".$tableName." SET "; $w = ""; for($i = 0 ; $i < count($fieldsAndValues);$i++) { $sql .= key($fieldsAndValues)." = '".$fieldsAndValues[key($fieldsAndValues)]."'"; if($i != (count($fieldsAndValues)-1)) $sql .= ", "; if($i == $key[$i]) { $w .= key($fieldsAndValues)." = '".$fieldsAndValues[key($fieldsAndValues)]."'"; if($i != (count($key)-1)) $w .= " AND "; } next($fieldsAndValues); } $sql .= " WHERE ".$w; return @mysql_query($sql) or die(mysql_error()); } //ฟังก์ชั่นทำคำสั่ง sql โดยไม่มีการแสดงผลเช่น INSERT, DELETE, UPDATE function J_ExecuteNonQuery($sql) { @mysql_query($sql) or die(mysql_error()); } //ฟังก็ชั่นลบข้อมูลในฐานข้อมูล function J_Delete($fieldsAndValues,$tableName) { $sql = "DELETE FROM ".$tableName; $w = ""; for($i = 0 ; $i < count($fieldsAndValues);$i++) { $w .= key($fieldsAndValues)." = '".$fieldsAndValues[key($fieldsAndValues)]."'"; if($i != (count($fieldsAndValues)-1)) $w .= " AND "; next($fieldsAndValues); } return @mysql_query($sql) or die(mysql_error()); } //ฟังก์ชั่นปิดการเชื่อมต่อฐานข้อมูล function J_Close() { @mysql_close($this->db_connect); }
}
?>
สร้างตารางที่มีฟีลด์ตามนี้ครับ
ฟิลด์ |
id |
name |
phone |
เมื่อสร้างเสร็จแล้วเราก็มาลุยกันเลย
เริ่มต้นด้วยการ INSERT
- insert.php
<? include("config.php"); // เรียกไฟล์ config.php เข้ามา include("J_MySQL.php"); // เรียกไฟล์ J_MySQL.php เข้ามา $juice = new J_SQL; //สร้างออบเจ็ค J_SQL ขึ้นมา //เรียกใช้เมธอด J_ConnectDB() หรือจะเรียกว่าฟังก์ชั่นก็ได้ //งั้นเรียกฟังก์ชั่นดีกว่า ต่อไปนี้ขอเรียกเมธอด ว่าฟังก์ชั่นก็แล้ว -*- //ส่วนฟังก์ชั่น แต่ล่ะตัวคืออะไรให้กลับไปดูที่ไฟล์ J_MySQL.php $juice->J_ConnectDB(); $juice->J_SelectDB(); // เรียกใช้ฟังก์ชั่น J_SelectDB() $juice->set_char_utf8(); // เรียกใช้ฟังก์ชั่น set_char_utf8() // ทีเด็ดอยู่ที่ตรงนี้ครับ ฮ่าๆๆๆๆ $ins["id"] = "1"; $ins["name"] = "juice"; $ins["phone"] = "044-444288"; $ins["email"] = "info@step-juice.com"; /** ที่เห็นอยู่ด้านบนก็คือ Array แบบกำหนด Key นั้นเอง คงเดาออกแล้วใช้ไหมครับว่าผมใช้ Array ทำอะไร สังเกตว่า Key ของ Array ที่มีชื่อว่า $ins นั้นมีชื่อตรงกับ ฟิลล์ใน Tabale tbl_test เลยใช่ไหมครับ แล้วค่าใน Array ก็คืออ.. ใช่แล้วว คือค่าที่เราจะ Insert เข้าไปนั้นเอง **/ /** เอาล่ะมาดู Code กันต่อมันยังไม่จบ -*- ต่อไปเรียกใช้ฟังก์ชั่น J_Insert() มี อาร์กิวเมนต์ สองตัว ตัวแรกรับค่าเป็น Array ในที่นี้ใส่ Array ที่ชื่อว่า $ins นั่นเอง ตัวที่สองรับค่าเป็น String ให้เราใส่ชื่อ Table เข้าไป ในที่นี้ Table ของเรามีชื่อว่า "tbl_test" นั่นเอง ^^ **/ $juice->J_Insert($ins,"tbl_test"); $juice->J_Close(); // ปิดการเชื่อมต่อ Database ?>
- select.php
<? include("config.php"); include("include/J_MySQL.php"); $juice = new J_SQL; $juice->J_ConnectDB(); $juice->J_SelectDB(); $juice->set_char_utf8(); $fieldName = "name,email"; $tableName = "tbl_test"; $result = $juice->J_Select($fieldName,$tableName); if(count($result) > 0){ foreach($result as $read) { echo "name :: ".$read["name"]." <br / > "; // tag br มันพิมพ์ยากแท้ใน bloger -*- แก้ให้ถูกด้วยนะคับ echo "email :: ".$read["email"]." <br / > "; } } $juice->J_Close(); ?>
- update.php
<? include("config.php"); include("include/J_MySQL.php"); $juice = new J_SQL; $juice->J_ConnectDB(); $juice->J_SelectDB(); $juice->set_char_utf8(); $ins["id"] = "1"; $ins["email"] = "info@step-juice.blogspot.com"; //ค่าที่ต้องการ Update ในฟิลล์ Email $key = array(0); //$key = array(0); หมายถึงใช้ array ตัวที่ 0 เป็นเงื่อนไขในการ WHERE //ในที่นี้จะได้เป็น WHERE id = 1; ลองเล่นดูครับ $juice->J_Update($ins,$key,"tbl_test"); $juice->J_Close(); //อัพเดตเสร็จให้กลับไป select ข้อมูลขึ้นมดูอีกทีที่ ไฟล์ select.php เลยครับ ?>
- delete.php
<? include("config.php"); include("include/J_MySQL.php"); $juice = new J_SQL; $juice->J_ConnectDB(); $juice->J_SelectDB(); $juice->set_char_utf8(); $del["id"] = "1"; //เงื่อนไขที่ต้องการ delete ในฟิลล์ id $del["email"] = "info@step-juice.blogspot.com"; //เงื่อนไขที่ต้องการ delete ในฟิลล์ Email $juice->J_Delete($del,"tbl_test"); //ในที่นี้จะได้เป็น DELETE FROM tbl_test WHERE id = '1' AND email = 'info@step-juice.blogspot.com'; $juice->J_Close(); //ลบเสร็จให้กลับไป select ข้อมูลขึ้นมดูอีกทีที่ ไฟล์ select.php เลยครับ ?>
ถ้าไม่เข้าใจตรงไหนถามได้เลยนะครับ
จะพยายามแวะมา อธิบายเพิ่มเติม ^^"
5 ความคิดเห็น
ขอถามหน่อยครับ
ตอบลบแล้วถ้าในดาต้าเบสเรามีตัวอักขระ ' หรือ & หรืออักขระอื่นๆจะเรียกมาแสดงในหน้าเว็บเรายังไงอ่าครับ
ใช้ฟังก์ชั่นอะไรแล้วเรียกยังไงหรอครับ
ขอบคุณล่วงหน้าครับ
เรียกได้แต่จะส่งค่าไปหน้าอื่น ข้อความที่ต่อหลังอักขระมันไม่ไปอ่าครับ
ตอบลบโอ้วต้องขอโทษด้วยผมเพิ่งมาเห็น เม้น T^T
ตอบลบคงจะได้คำตอบไปแล้วใช่ไหมครับ อุส่ามีคนมาเม้นทั้งที
T^T ต้องขอโทษจริงๆ
แร้วลบอ่ะครับเขียนยังไงครับ
ตอบลบผมเพิ่ม function delete ในไฟล์ - J_MySQL.php แล้วครับ ส่วนวิธีใช้ดูตามตััวอย่างด้านบนนะครับ
ลบผมอัพเดตบทความให้ใหม่แล้ว
ถ้ามีเงื่อนไขในคำสั่ง sql ที่ยุ่งยากก็เขียนคำสั่งเองดีกว่าครับ แหะๆ แล้วไปเรียกใช้ function J_ExecuteNonQuery
ป้อนคำสั่ง sql ไปตรงๆเลยก็ได้ครับ จะเหมือนกับ mysql_query();
function J_ExecuteNonQuery($sql)
{
@mysql_query($sql) or die(mysql_error());
}