ฉันกำลังทำการทดสอบบางอย่าง (บนเซิร์ฟเวอร์ dev ของฉัน) เพื่อช่วยฉันค้นหาว่าอะไรเป็นสาเหตุของรายการการเชื่อมต่อที่เพิ่มขึ้นเรื่อย ๆ บนเซิร์ฟเวอร์ที่ใช้งานจริงของฉัน ข้อสันนิษฐานของฉันคือมีบางหน้าที่ไม่ได้ปิดการเชื่อมต่อโดยใช้ mysql_close() ดังนั้นฉันจึงพยายามยืนยันสิ่งที่สร้างการเชื่อมต่อก่อน แล้วจึงยืนยันวิธีตรวจสอบให้แน่ใจว่าปิดการเชื่อมต่อแล้ว
ในการทำเช่นนี้ ฉันสร้างสคริปต์ง่ายๆ เพื่อสร้างการเชื่อมต่อ ตามด้วย mysql_close() เพื่อปิดการเชื่อมต่อ ขออภัย การทดสอบของฉันหยุดนิ่งเพราะฉันไม่สามารถยืนยันได้ว่าฉันกำลังสร้างการเชื่อมต่อ
เมื่อฉันเรียกใช้โค้ดต่อไปนี้ (สังเกตว่า mysql_close()) ถูกแสดงความคิดเห็น ฉันคาดว่าจะเห็นการเชื่อมต่อใหม่ในรายการการเชื่อมต่อไคลเอนต์ของฉัน และฉันคาดว่ามันจะปิดตัวเองหลังจากผ่านไป 20 วินาที เนื่องจากฉันได้ตั้งค่า wait_timeout เป็น 20 อย่างไรก็ตาม ดูเหมือนว่าจะไม่มีการเชื่อมต่อแม้แต่น้อย
<?php
$dblocation = "127.0.0.1";
$dbusername = "blah_dev";
$dbpassword = "test";
$dbname = "blah_dev";
$dbdescription = "";
$conn = mysql_connect($dblocation, $dbusername, $dbpassword) or die ("<span style='color:red'>Unable to connect! Press F5 to try again.</span>");
mysql_select_db($dbname, $conn) or die ("Unable to select database!");
$sql = "select fullname from months";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result)){
echo "<table border=1>";
do{
$month = $row["fullname"];
echo "<tr><td>".$month."</td></tr>";
}while ($row = mysql_fetch_array($result));
echo "</table>";
}
//mysql_close();
?>
ฉันยังเพิ่มคำสั่ง Select อย่างง่ายเพื่อยืนยันว่าฉันกำลังสร้างการเชื่อมต่อ และฉันกำลังทำอยู่ เหตุใดการเชื่อมต่อนี้จึงไม่แสดงในรายการการเชื่อมต่อไคลเอนต์ของฉันใน MySQL Workbench ฉันยังใช้เครื่องมืออื่น (MySQL Diagnostic Manager) เพื่อแสดงเธรดปัจจุบันให้ฉันเห็น แต่ก็ไม่แสดงที่นั่นเช่นกัน
ฉันพลาดอะไรไปที่นี่?