1--TEST-- 2mysqli_pconnect() 3--EXTENSIONS-- 4mysqli 5--SKIPIF-- 6<?php 7require_once 'skipifconnectfailure.inc'; 8?> 9--FILE-- 10<?php 11 require_once 'connect.inc'; 12 13 $host = 'p:' . $host; 14 if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) 15 printf("[002] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", 16 $host, $user, $db, $port, $socket); 17 18 mysqli_close($link); 19 20 $num = 20; 21 $connections = array(); 22 for ($i = 0; $i < $num; $i++) { 23 if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) 24 printf("[003] Connect failed, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); 25 $connections[] = $link; 26 } 27 while (count($connections)) { 28 do { 29 $index = mt_rand(0, $num); 30 } while (!isset($connections[$index])); 31 mysqli_close($connections[$index]); 32 unset($connections[$index]); 33 } 34 35 36 $connections = array(); 37 $num = 20; 38 for ($i = 0; $i < $num; $i++) { 39 if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) 40 printf("[004] Connect failed, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); 41 $connections[] = $link; 42 } 43 $left = $num; 44 45 while (count($connections) && $left > 0) { 46 do { 47 $index = mt_rand(0, $num); 48 } while (!isset($connections[$index]) && $left > 0); 49 if (mt_rand(0, 1) > 0) { 50 $left--; 51 mysqli_close($connections[$index]); 52 unset($connections[$index]); 53 } else { 54 $left--; 55 if (!$connections[$index] = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) 56 printf("[004] Connect failed, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); 57 } 58 flush(); 59 } 60 61 while (count($connections)) { 62 do { 63 $index = mt_rand(0, $num); 64 } while (!isset($connections[$index])); 65 mysqli_close($connections[$index]); 66 unset($connections[$index]); 67 } 68 69 print "done!"; 70?> 71--EXPECT-- 72done! 73