uw Mon Jul 23 12:34:09 2007 UTC Added files: /php-src/ext/mysqli/tests mysqli_driver_unclonable.phpt mysqli_result_unclonable.phpt mysqli_stmt_unclonable.phpt mysqli_unclonable.phpt mysqli_warning_unclonable.phpt Log: Tests which verify that you really cannot clone any of the mysqli objects. Technically it might be possible to tweak ext/mysqli and make the objects cloneable - tough, we haven't checked in depth. So, if one is interested, raise a discussion.
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_driver_unclonable.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_driver_unclonable.phpt +++ php-src/ext/mysqli/tests/mysqli_driver_unclonable.phpt --TEST-- Trying to clone mysqli_driver object --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php $driver = new mysqli_driver; $driver_clone = clone $driver; print "done!"; ?> --EXPECTF-- Fatal error: Trying to clone an uncloneable object of class mysqli_driver in %s on line %d http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_result_unclonable.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_result_unclonable.phpt +++ php-src/ext/mysqli/tests/mysqli_result_unclonable.phpt --TEST-- Trying to clone mysqli_result object --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); if (!($res = mysqli_query($link, "SELECT 'good' AS morning"))) printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); $res_clone = clone $res; print "done!"; ?> --EXPECTF-- Fatal error: Trying to clone an uncloneable object of class mysqli_result in %s on line %d http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_stmt_unclonable.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_stmt_unclonable.phpt +++ php-src/ext/mysqli/tests/mysqli_stmt_unclonable.phpt --TEST-- Trying to clone mysqli_stmt object --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); if (!$stmt = mysqli_stmt_init($link)) printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); /* no, still bails out */ $stmt_clone = clone $stmt; print "done!"; ?> --EXPECTF-- Fatal error: Trying to clone an uncloneable object of class mysqli_stmt in %s on line %d http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_unclonable.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_unclonable.phpt +++ php-src/ext/mysqli/tests/mysqli_unclonable.phpt --TEST-- Trying to clone mysqli object --SKIPIF-- <?php require_once('skipif.inc'); ?> <?php require_once('skipifemb.inc'); ?> --FILE-- <?php include "connect.inc"; if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); $link_clone = clone $link; mysqli_close($link); print "done!"; ?> --EXPECTF-- Fatal error: Trying to clone an uncloneable object of class mysqli in %s on line %d http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_warning_unclonable.phpt?view=markup&rev=1.1 Index: php-src/ext/mysqli/tests/mysqli_warning_unclonable.phpt +++ php-src/ext/mysqli/tests/mysqli_warning_unclonable.phpt --TEST-- Trying to clone mysqli_warning object --SKIPIF-- <?php require_once('skipif.inc'); require_once('skipifemb.inc'); require_once('connect.inc'); if (!$TEST_EXPERIMENTAL) die("skip - experimental (= unsupported) feature"); ?> --FILE-- <?php include "connect.inc"; if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[001] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); if (!mysqli_query($link, "DROP TABLE IF EXISTS test")) printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if (!mysqli_query($link, "CREATE TABLE test (id SMALLINT)")) printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if (!mysqli_query($link, "INSERT INTO test (id) VALUES (1000000)")) printf("[004] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); if (!is_object($warning = mysqli_get_warnings($link)) || 'mysqli_warning' != get_class($warning)) { printf("[005] Expecting object/mysqli_warning, got %s/%s\n", gettype($tmp), (is_object($tmp) ? var_dump($tmp, true) : $tmp)); } $warning_clone = clone $warning; print "done!"; ?> --EXPECTF-- Fatal error: Trying to clone an uncloneable object of class mysqli_warning in %s on line %d -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php