|
|
|
สับสนเรื่อง $db = new DB(); ครับคือในความเข้าใจผม มันเป็นการเรียกใช้งาน การติดต่อ database |
|
|
|
|
|
|
|
สับสนเรื่อง $db = new DB(); ครับ
คือในความเข้าใจผม มันเป็นการเรียกใช้งาน การติดต่อ database ถูกต้องไหมครับ
แล้วถ้าหากเรามีการ connect หลายส่วน เช่น
$db->connectdb(database,root,password);
จะต้องมีการ ปิดการ connect ทุกครั้งหรือเปล่าครับ
$db->closedb();
สมมติว่า web ผมที่สร้างขึ้นมีการ connect db 3 ครั้ง เราจะต้อง
ครั้งที่ 1
$db = new DB();
$db->connectdb(database,root,password);
.......
$db->closedb();
ครั้งที่ 2
$db = new DB();
$db->connectdb(database,root,password);
.....
$db->closedb();
และครั้งที่ 3
$db = new DB();
$db->connectdb(database,root,password);
.....
$db->closedb();
ทุกครั้งใช่ไหมครับ ได้โปรดแนะนำด้วยครับ
หากประกาศ $db = new DB(); เพียงครั้งเดียว แล้วที่เหลือใช้
ครั้งที่ 1
$db->connectdb(database,root,password);
.....
$db->closedb();
ครั้งที่ 2
$db->connectdb(database,root,password);
.....
$db->closedb();
ครั้งที่ 3
$db->connectdb(database,root,password);
.....
$db->closedb();
จะได้ไหมครับ
แล้ว $db->closedb(); ต้องใช้ทุกครั้งที่มีการ connect หรือเปล่าครับ หรือสามารถปิดครั้งเดียวตอนจบท้าย หน้า เช่น
$db = new DB();
ครั้งที่ 1
$db->connectdb(database,root,password);
.....
ครั้งที่ 2
$db->connectdb(database,root,password);
.....
ครั้งที่ 3
$db->connectdb(database,root,password);
.....
$db->closedb();
ได้ไหมครับ
แบบไหนคือวิธีที่ถูกต้องครับ
ขอบคุณครับ
Tag : - - - -
|
|
|
|
|
|
Date :
2009-08-13 16:28:13 |
By :
netlic |
View :
2326 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าไม่ได้ใช้การ connect แบบถาวรไม่ต้อง close เลยครับ เพราะ php close ให้อัตโนมัติ การ close ทำให้โค้ดรกเปล่าๆ ครับ
แต่ถ้ามีการเขียนแบบ mvc ซึ่งมีการแยกส่วนควบคุมออกจาก ส่วนแสดงผลข้อมูล
การ close การ connect เร็วๆ ตั้งแต่ช่วงส่วนควบคุม จะช่วยให้การทำงานเร็วขึ้นเล็กน้อยครับ
|
|
|
|
|
Date :
2009-08-13 16:34:57 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ในหน้าเดียว connect ครั้งเดียวก็ได้ครับ ถ้าไม่ได้มีข้อมูลอยู่คนล่ะ server
อย่างนี้น่าจะได้
$db = new DB();
ครั้งเดียว
$db->connectdb(database,root,password);
select,update,delete
...
$db->closedb();
ทั้งนี้ก็ขึ้นอยู่กับ คลาส DB() ที่คุณใช้ครับ
|
|
|
|
|
Date :
2009-08-13 16:37:27 |
By :
lozomac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แสดงว่า เมื่อผม connect ผมก็ใช้งาน Class ตามที่ต้องการได้เลย ไม่ว่าจะมีกี่ class ใช่ไหมครับ
จากนั้น ก็ไปสั่งปิดทีเดียว ตอนก่อนจบ code ?> ท้ายสุด หรือไม่ต้องสั่งปิดก็ได้ เพราะ php close ให้อัตโนมัติ
|
|
|
|
|
Date :
2009-08-13 16:46:21 |
By :
ืnetlic |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่เคยเห็นคลาส DB นะครับ ก็ไม่รู้ว่ามันทำงานยึดติดกับตัวคลาสไหม ถ้ายึดติดเราก็สามารถแยก ติดต่อได้ทีละหลายคอนเนกชั่นครับ
|
|
|
|
|
Date :
2009-08-13 20:18:19 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
class DB{
//ส่วนของการเชื่อมต่อ
var $host = DB_HOST ;
var $database ;
var $connect_db ;
var $selectdb ;
var $db ;
var $sql ;
var $table ;
var $where;
////////////////////// ฟังก์ชั่นต่างๆ //////////////////////
//เชื่อมต่อดาต้าเบส
function connectdb($db_name="database",$user="username",$pwd="password"){
$this->database = $db_name;
$this->username = $user;
$this->password = $pwd;
$this->connect_db = mysql_connect ( $this->host, $this->username, $this->password ) or $this->_error();
//$this->connect_db = mysql_pconnect ( $this->host, $this->username, $this->password ) or $this->_error();
$this->db = mysql_select_db ( $this->database, $this->connect_db) or $this->_error();
mysql_query("SET NAMES TIS620");
mysql_query("SET character_set_results=tis620");
return true;
}
//ปิดการเชื่อมต่อดาต้าเบส
function closedb( ){
mysql_close ( $this->connect_db ) or $this->_error();
}
?>
|
|
|
|
|
Date :
2009-08-17 16:34:32 |
By :
netlic |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|