mysql_close(); ใช้หรือไม่ใช้ดี มาดูตัวอย่างกัน
mysql_close(); ใช้หรือไม่ใช้ดี
ตอบว่าไม่จำเป็นต้องใช้และจำเป็นต้องใช้ขึ้นอยู่กับกรณีครับ ซึ่งจริงๆแล้ว
php จะทำการปิด Connection ให้เองโดยอัตโนมัตทุกครั้งหลังจาก php script
ของเราทำงานเสร็จอยู่แล้ว ว่าแต่ว่าแล้วจุดไหนที่จะเรียกว่า php script
ได้ทำงานเสร็จสมบูรณ์แล้ว คำตอบก็คือบรรทัดสุดท้ายนั้นหละครับ
จากตัวอย่างที่เห็นน้องๆหลายคนทำมาก็คือว่า จะใส่ mysql_close();
เอาไว้ในบรรทัดสุดท้ายของโปรแกรมเลย
ซึ่งหากว่าใส่บรรทัดสุดท้ายซะขนาดนี้ก็ไม่จำเป็นต้องใส่ก็ได้
เนื่องจากว่าหลังจากบรรทัดนี้ไป php ก็จะทำการปิด Connection
ให้เองอยู่แล้ว แต่ถ้าหากเห็นว่าสวยงามก็ไม่ว่ากัน
# ตัวอย่างที่ไม่จำเป็นต้องใช้ mysql_close();
แบบนี้ไม่จำเป็นต้องใช้ mysql_close(); ก็ได้ครับ เพราะหลังจากบรรทัด mysql_close(); ก็จบโปรแกรมพอดี ซึง php จะทำการปิด connection ให้เองอยู่แล้ว
แล้วมีกรณีไหนบ้างไหมที่เราจำเป็นต้องใช้ mysql_close(); คำตอบคือมีครับ
ตัวอย่างเช่นหากว่าเราทำการ Query MySQL และได้นำผลลัพธ์นั้นมาใช้แล้ว
หรือว่าทั้ง Code ที่เราเขียนไม่มีส่วนใดส่วนหนึงต้องทำการเรียกใช้ MySQL
แล้ว แต่ว่ายังมี Code บางส่วนที่ยังต้องทำงานอยู่ ตัวอย่างเช่น
เราอาจจะสั่ง sleep(300); (หลับเป็นเวลา 5 นาที) และค่อยจบโปรแกรม
ถ้าแบบนี้เราควรใช้ mysql_close(); นะครับ
# ตัวอย่างที่จำเป็นต้องใช้ mysql_close();
จากตัวอย่างนี้จำเป็นต้องปิด เพราะยังมี code บางส่วนที่เรายังต้องการให้ทำงานอยู่และ code ส่วนที่ว่าก็ไม่ได้มีการใช้ MySQL แต่อย่างใด
อ่านข้อมูลเพิ่มเติมได้ที่ PHP Manual นะครับ http://th2.php.net/manual/en/function.mysql-close.php
ปล. จริงๆ เขียนเรื่องนี้ก็กลัวๆ ว่าจะโดนต่อต้านว่าไม่ทำตามแบบแผนการเขียนโปรแกรมที่ดี แต่ไม่สนใจอันนี้ความคิดเห็นของผม คุณอ่านคุณตัดสินใจเลือกเอาเอง ^^
# ตัวอย่างที่ไม่จำเป็นต้องใช้ mysql_close();
แบบนี้ไม่จำเป็นต้องใช้ mysql_close(); ก็ได้ครับ เพราะหลังจากบรรทัด mysql_close(); ก็จบโปรแกรมพอดี ซึง php จะทำการปิด connection ให้เองอยู่แล้ว
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php // Connect MySQL mysql_connect("localhost", "root", "root"); mysql_select_db("test"); // Select Data $query = "SELECT * FROM `test`"; $result = mysql_query($query); while($line = mysql_fetch_array($result)){ print $line['FIELD1']."<br />"; } // Close MySQL // หากว่าจะทำการปิด connection ตรงบรรทัดสุดท้ายแบบนี้ // ไม่จำเป็นต้องปิด เพราะ php จะทำการปิดให้โดยอัตโนมัต mysql_close(); ?> |
# ตัวอย่างที่จำเป็นต้องใช้ mysql_close();
จากตัวอย่างนี้จำเป็นต้องปิด เพราะยังมี code บางส่วนที่เรายังต้องการให้ทำงานอยู่และ code ส่วนที่ว่าก็ไม่ได้มีการใช้ MySQL แต่อย่างใด
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php // Connect MySQL mysql_connect("localhost", "root", "root"); mysql_select_db("test"); // Select Data $query = "SELECT * FROM `test`"; $result = mysql_query($query); while($line = mysql_fetch_array($result)){ print $line['FIELD1']."<br />"; } // Close MySQL // ถ้าหากว่าหลังจากปิด connection ไปแล้ว ยังมี code ส่วนอื่นที่ยังทำงานอยู่ // แบบนี้ควรปิด เพราะจะได้คืน resource ไปใช้ทำอย่างอื่น mysql_close(); // Sleep 300 seconds // ตัวอย่างนี้ จะทำการ หน่วงเวลาการทำงานไป 5 นาทีก่อนจะจบโปรแกรม sleep(300); print "Complete"; ?> |
ปล. จริงๆ เขียนเรื่องนี้ก็กลัวๆ ว่าจะโดนต่อต้านว่าไม่ทำตามแบบแผนการเขียนโปรแกรมที่ดี แต่ไม่สนใจอันนี้ความคิดเห็นของผม คุณอ่านคุณตัดสินใจเลือกเอาเอง ^^
ไม่มีความคิดเห็น:
แสดงความคิดเห็น