Skip to content

Commit

Permalink
Added test case for #47802 and fixed macro name after the move to mys…
Browse files Browse the repository at this point in the history
…ql_options()
  • Loading branch information
KalleZ committed Jan 7, 2011
1 parent cc6bb66 commit ee62a1a
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 3 deletions.
2 changes: 1 addition & 1 deletion ext/pdo_mysql/mysql_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions ext/pdo_mysql/tests/mysql_pdo_test.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand Down
34 changes: 34 additions & 0 deletions ext/pdo_mysql/tests/pdo_mysql_connect_charset.phpt
Original file line number Diff line number Diff line change
@@ -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!

0 comments on commit ee62a1a

Please sign in to comment.