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());
}