kalle Fri, 07 Jan 2011 17:18:30 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=307228
Log: Added test case for #47802 and fixed macro name after the move to mysql_options() Bug: http://bugs.php.net/47802 (Assigned) PDO_MYSQL doesn't use the charset parameter Changed paths: U php/php-src/trunk/ext/pdo_mysql/mysql_driver.c U php/php-src/trunk/ext/pdo_mysql/tests/mysql_pdo_test.inc A php/php-src/trunk/ext/pdo_mysql/tests/pdo_mysql_connect_charset.phpt Modified: php/php-src/trunk/ext/pdo_mysql/mysql_driver.c =================================================================== --- php/php-src/trunk/ext/pdo_mysql/mysql_driver.c 2011-01-07 15:51:36 UTC (rev 307227) +++ php/php-src/trunk/ext/pdo_mysql/mysql_driver.c 2011-01-07 17:18:30 UTC (rev 307228) @@ -683,7 +683,7 @@ #endif } -#ifdef PDO_MYSQL_HAS_CHARSET_X +#ifdef PDO_MYSQL_HAS_CHARSET if (vars[0].optval && mysql_options(H->server, MYSQL_SET_CHARSET_NAME, vars[0].optval)) { pdo_mysql_error(dbh); goto cleanup; Modified: php/php-src/trunk/ext/pdo_mysql/tests/mysql_pdo_test.inc =================================================================== --- php/php-src/trunk/ext/pdo_mysql/tests/mysql_pdo_test.inc 2011-01-07 15:51:36 UTC (rev 307227) +++ php/php-src/trunk/ext/pdo_mysql/tests/mysql_pdo_test.inc 2011-01-07 17:18:30 UTC (rev 307228) @@ -4,9 +4,9 @@ class MySQLPDOTest extends PDOTest { - static function factory($classname = 'PDO', $drop_test_tables = false, $myattr = null) { + static function factory($classname = 'PDO', $drop_test_tables = false, $myattr = null, $mydsn = null) { - $dsn = self::getDSN(); + $dsn = self::getDSN($mydsn); $user = PDO_MYSQL_TEST_USER; $pass = PDO_MYSQL_TEST_PASS; $attr = getenv('PDOTEST_ATTR'); Added: php/php-src/trunk/ext/pdo_mysql/tests/pdo_mysql_connect_charset.phpt =================================================================== --- php/php-src/trunk/ext/pdo_mysql/tests/pdo_mysql_connect_charset.phpt (rev 0) +++ php/php-src/trunk/ext/pdo_mysql/tests/pdo_mysql_connect_charset.phpt 2011-01-07 17:18:30 UTC (rev 307228) @@ -0,0 +1,34 @@ +--TEST-- +PDO_MYSQL: Defining a connection charset in the DSN +--SKIPIF-- +<?php +require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc'); +require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc'); +MySQLPDOTest::skip(); +?> +--FILE-- +<?php + /* TODO: remove this test after fix and enable the BIT test in pdo_mysql_types.phpt again */ + require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc'); + + /* Connect to mysql to determine the current charset so we can diffinate it */ + $link = MySQLPDOTest::factory(); + $charset = $link->query("SHOW VARIABLES LIKE 'character_set_connection'")->fetchObject()->value; + + /* Make sure that we don't attempt to set the current character set to make this case useful */ + $new_charset = ($charset == 'latin1' ? 'ascii' : 'latin1'); + + /* Done with the original connection, create a second link to test the character set being defined */ + unset($link); + + $link = MySQLPDOTest::factory('PDO', false, null, Array('charset' => $new_charset)); + $conn_charset = $link->query("SHOW VARIABLES LIKE 'character_set_connection'")->fetchObject()->value; + + if ($charset !== $conn_charset) { + echo "done!\n"; + } else { + echo "failed!\n"; + } +?> +--EXPECTF-- +done! \ No newline at end of file
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php