From: Kalle Sommer Nielsen Date: Fri, 7 Jan 2011 17:18:30 +0000 (+0000) Subject: Added test case for #47802 and fixed macro name after the move to mysql_options() X-Git-Tag: php-5.4.0alpha1~191^2~404 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ee62a1a747008daed716dfd9e32eb20676ed166e;p=php Added test case for #47802 and fixed macro name after the move to mysql_options() --- diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c index bbf0a2ce0c..d9718c6f83 100755 --- a/ext/pdo_mysql/mysql_driver.c +++ b/ext/pdo_mysql/mysql_driver.c @@ -683,7 +683,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_ #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; diff --git a/ext/pdo_mysql/tests/mysql_pdo_test.inc b/ext/pdo_mysql/tests/mysql_pdo_test.inc index 01c4cb9aaf..a3ffd5b9cc 100644 --- a/ext/pdo_mysql/tests/mysql_pdo_test.inc +++ b/ext/pdo_mysql/tests/mysql_pdo_test.inc @@ -4,9 +4,9 @@ require_once(dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc'); 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'); diff --git a/ext/pdo_mysql/tests/pdo_mysql_connect_charset.phpt b/ext/pdo_mysql/tests/pdo_mysql_connect_charset.phpt new file mode 100644 index 0000000000..b7e6ab440c --- /dev/null +++ b/ext/pdo_mysql/tests/pdo_mysql_connect_charset.phpt @@ -0,0 +1,34 @@ +--TEST-- +PDO_MYSQL: Defining a connection charset in the DSN +--SKIPIF-- + +--FILE-- +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