diff options
author | Davey Shafik <davey@php.net> | 2016-02-03 02:45:24 -0500 |
---|---|---|
committer | Davey Shafik <davey@php.net> | 2016-02-03 02:45:24 -0500 |
commit | f0ea8a8e3dc476e5deb1e6ef0c4dbe6237fe8459 (patch) | |
tree | 5e8ad48ab48b3d940e2e17c513d58b83a7e079a8 | |
parent | a8a17b83d51679a6ec6251f79e41f93b76b6b3f8 (diff) | |
parent | cb3cce2392a9022cc8493a93c76a113ebbb764e8 (diff) | |
download | php7-mysql-shim-f0ea8a8e3dc476e5deb1e6ef0c4dbe6237fe8459.zip php7-mysql-shim-f0ea8a8e3dc476e5deb1e6ef0c4dbe6237fe8459.tar.gz php7-mysql-shim-f0ea8a8e3dc476e5deb1e6ef0c4dbe6237fe8459.tar.bz2 |
Merge pull request #5 from gimler/mysql_defaults
Use INI defaults
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | lib/mysql.php | 9 | ||||
-rw-r--r-- | tests/MySqlShimTest.php | 13 |
3 files changed, 25 insertions, 1 deletions
@@ -26,5 +26,7 @@ Once the file is included, it will create `mysql_*` function if they don't alrea - Calls to `is_resource()` and `get_resource_type()` on MySQL connections and results will fail as these are now their `mysqli` equivalents. - Some errors are now from `ext/mysqli`, and others are `E_USER_WARNING` instead of `E_WARNING`. -- You must use the `mysqli.*` INI entries instead of `mysql.*` (e.g. `mysqli.default_user` instead of `mysql.default_usert`) +- You must use the `mysqli.*` INI entries instead of `mysql.*` (e.g. `mysqli.default_user` instead of `mysql.default_user`) - Column lengths reported by `mysql_field_len()` assume `latin1` +- If no host, username, password parameter is provided when using the `mysql_*` functions, the default values from the corresponding `mysqli.*` settings from `php.ini` file will be used +(e.g. `mysqli.default_host`, `mysqli.default_user`, `mysqli.default_pw`) diff --git a/lib/mysql.php b/lib/mysql.php index 9fa32cb..e587c2a 100644 --- a/lib/mysql.php +++ b/lib/mysql.php @@ -20,6 +20,15 @@ namespace { if ($new !== false) { trigger_error('Argument $new is no longer supported in PHP > 7', E_USER_WARNING); } + if (null === $hostname) { + $hostname = ini_get('mysqli.default_host') ?: null; + } + if (null === $username) { + $username = ini_get('mysqli.default_user') ?: null; + } + if (null === $password) { + $password = ini_get('mysqli.default_pw') ?: null; + } $hash = sha1($hostname . $username . $flags); if ($hostname{1} != ':' && isset(\Dshafik\MySQL::$connections[$hash])) { diff --git a/tests/MySqlShimTest.php b/tests/MySqlShimTest.php index 2945464..ccaeec8 100644 --- a/tests/MySqlShimTest.php +++ b/tests/MySqlShimTest.php @@ -24,6 +24,19 @@ class MySqlShimTest extends \PHPUnit_Framework_TestCase } /** + * @requires PHP 7 + */ + public function test_mysql_connect_defaults() + { + ini_set('mysqli.default_host', '127.0.0.1'); + ini_set('mysqli.default_user', 'root'); + ini_set('mysqli.default_pw', ''); + + $mysql = mysql_connect(); + $this->assertConnection($mysql); + } + + /** * @expectedException \PHPUnit_Framework_Error_Warning * @expectedExceptionMessageRegExp /^mysql(i?)_connect\(\): (\(HY000\/1045\): )?Access denied for user 'baduser'@'(.*?)' \(using password: YES\)$/ */ |