มี คำสั่ง mysql_close กับไม่มีมันต่างกันไหมครับ มี คำสั่ง mysql_close กับไม่มีมันต่างกันไหมครับ
ต่างกันนิดหน่อยครับ คือเมื่อเปิดการ Connect แล้วไม่ปิด ก็จะ เกิด Eror
Date :
2009-03-17 13:15:37
By :
mrAAA
แล้วมันมีผลกับ พวกความเร็วในการเข้าถึงข้อมูล หรือ ว่าจะเป็นภาระกับเครื่อง เซิฟเวอร์ที่เราไห้บริการข้อมูลไหมครับ ถ้ากรณีที่ไม่ปิดนะครับ
Date :
2009-03-17 13:30:08
By :
mitsongkore
ปิดให้เอง อัตโนมัติครับ เมื่อจบไฟล์
Date :
2009-03-17 13:38:06
By :
pjgunner
ขอบคุณมากๆครับ ทำไห้สบายใจขึ้นเยอะว่าไม่มีผลอะไรมากกับฐานข้อมูล
Date :
2009-03-17 13:43:41
By :
mitsongkore
การเชื่อต่อ mysql ด้วย php นั้น จะใช้ได้สองแบบ (ไม่นับ odbc) คือ
แบบที่ 1
mysql_connect();
Code (PHP)
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
แบบนี้ จะมีการเปิด และควรจะปิด การเชื่อมต่อ ไม่เช่นนั้น จะมี connection ค้างอยู่ที่ mysql server
แบบที่ 2
mysql_pconnect() ;
มีลักษณะการใช้งานเหมือนแบบแรก แต่ ไม่ต้อง mysql_close($link);
เพราะการเชื่อมต่อแบบนี้ จะไม่ทำการปิด connection จนกว่าจะไม่มีการเรียกเว็บเพจ (ปิดไปเลย)
Date :
2009-03-17 13:53:37
By :
lozomac
รูปแบบที่ผมเขียนข้างล่างนี้ คือไม่ต้อง มี mysql_close ใช่ไหมครับ ซึ่ง โค้ดนี้ผมไว้ในไฟล์ connect.php โดยใช้ include เรียกมาแทน ไม่ทราบว่าผมเข้าใจถูกไหมครับ
Code (PHP)
<?php
<?
$host="localhost";
$username="admin";
$pass_word="123456";
$db="database";
$tb="table";
mysql_connect( $host,$username,$pass_word) or die ("ติดต่อ Mysql ไม่ได้ ");
mysql_select_db($db) or die("เลือกข้อมูลไม่ได้");
?>
?>
Date :
2009-03-17 14:00:54
By :
mitsongkore
ถ้า user ที่เข้ามาใช้งาน databse มีน้อย ไม่ต่างกันครับ
แต่ถ้า user เข้ามาเยอะมาก ๆ แล้วเขียน code แบบไม่ปิด connection
อาจจะทำให้ connectionn เต็มได้ แล้ว user ที่เข้ามาหลังจากนั้นจะเกิด error ครับ
กว่าจะรอเวลาให้ connection หมดเวลา อาจไม่ทันการก็ได้
Date :
2009-03-17 14:21:33
By :
tshubu
ผมขอโทษนะครับ คือ ลองดูแล้ว มันต่างกันยังไง ดูไม่ออกจริงๆครับ เพราะทุกครังที่มีการเปิด ขึ้นมา เหมือน ตรง ID มันจะ+ไปเรื่อยๆ หลังจากที่ลองไปใส่ mysql_close(); มันก็เหมือนเดิม ไม่แน่ใจว่าผมดูถูกจุดหรือไม่ครับ
คือ ผมไม่ทราบจริงๆครับ
Date :
2009-03-17 14:23:25
By :
mitsongkore
ตามที่ ref 8 บอกนั่นล่ะครับ
สรุป เลยละกันครับ
ถ้าใช้ mysql_connect(); ต้องปิดด้วย mysql_close(); ครับ
Date :
2009-03-17 14:30:03
By :
lozomac
ทำไม หน้าที่ ใส่ mysql_close(); ทุกหน้ามันขึ้นแบบนี้ละครับ Warning: mysql_close(): no MySQL-Link resource supplied in
แล้วเราต้องใส่ mysql_close(); ตรงบรรทัดไหนครับ
Date :
2009-03-17 14:31:42
By :
mitsongkore
mysql_close() closes the non-persistent connection to the MySQL server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is used.
Using mysql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution. See also freeing resources.
ปิดอัตโนมัติ
Date :
2009-03-17 14:35:46
By :
pjgunner
แปลว่า mysql ของผมตอนนี้มันปิด อัตโนมัติ ใช่ไหมครับ แล้วเราต้องไปปิดอะไร อีกไหมครับ หรือว่า ตอนนี้ok แล้วครับ
Date :
2009-03-17 14:38:20
By :
mitsongkore
อ๋อ ตอนนี้ผม พอมองภาพออกแล้วครับ ตรง
http://host/phpMyAdmin/index.php
SHOW PROCESSLIST
ที่แนะนำผมมา เมื่อกี้ มีคนเข้าใช้ระบบ มันจะขึ้น ในตารรางมา 2 บรรทัด ไม่แน่ใจว่าผมมองถูกหรือไม่นะครับ
1. แล้ว พอกด รีเฟรชที่ หน้า โปรเซส อีกครั้ง มันจะหายไปเอง แสดง ว่าเมื่อมีการเข้าใช้ ฐานข้อมูลนี้ สมมตว่า เข้าใช้ 10 คนก็จะขึ้น 10 บรรทัดใช่หรือไม่ครับ
2. แต่ถ้าไม่มี เราเปิดเข้าไปดู มันจะขึ้นแค่บรรทัดเดว คือเราที่เปิด phpmyadmin อยุ่ใช่หรือไม่ครับ
3. เพราะทุกครังที่ผมเปิด ดู โปรเซส มันจะขึ้นแค่บรรทัดเดว แสดงว่าตอนแรกที่ผมเปิดหน้าค้นหา ซึ่งทุกหน้าใช้ติดต่อสร้างคิวรี้ทุกหน้า พอมาเปิดที่ http://host/phpMyAdmin/index.php ดู SHOW PROCESSLIST ถ้าปกติมันต้องขึ้นมา หลายบรรทัดใช่หรือไม่ แต่ถ้ามันเหลือแค่บรรทัดเยว แสดงว่า มันมีการ close mysql ไห้หมดแล้วใช่หรือไม่ครับ
Date :
2009-03-17 14:50:13
By :
mitsongkore
ถูกต้องนะ ค้าบบบบบบ
Date :
2009-03-17 14:56:13
By :
lozomac
ถ้ายังงั้นแสดงว่า ในระบบที่ผมทำไว้มันมีการปิด mysql เองโดยอัตโนมัติ ดังนั้นผมก็ไม่จำเป็นต้องใส่ mysql_close(); ของทุกหน้าที่ผมสั่งให้มีการ คิวรี่ข้อมูล ไม่ทราบว่าผมเข้าใจถูกหรือไม่ครับ หรือถ้ายังผิดอยู่รบกวนแนะนำให้ทีครับ ขอขอบคุณทุกท่านอย่างสูงจริงๆครับ ที่ช้วยไขความกระจ่างให้ผม
Date :
2009-03-17 15:00:57
By :
mitsongkore
ตามที่ Reply บนๆ บอก
ถ้า ไม่ใส่ mysql_close(); คอนเน็คชั่นจะค้าง
ทำให้ระบบ ทำงานช้าไปด้วย
ถ้า reccord วันนึงๆ ไม่เยอะเท่าไร ผลที่ให้มันก็น้อย
แต่ลองเจอประเภทแบบว่า reccord วันนึงๆ เป็น แสนๆ reccord แบบผม จะรู้สึกเลยครับ ว่างานเข้า
Date :
2009-03-18 20:27:59
By :
aprodise
อืม มันเป็นอย่างนี้นี่เอง
Date :
2009-03-18 21:42:54
By :
zepherus
ขอขอบคุณอีกรอบครับ
Date :
2009-03-19 08:46:10
By :
mitsongkore
Load balance : Server 04