12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- --TEST--
- Check if deprecated API calls bail out
- --SKIPIF--
- <?php
- require_once('skipif.inc');
- require_once('skipifconnectfailure.inc');
- ?>
- --INI--
- mysql.trace_mode=1
- error_reporting=E_ALL | E_NOTICE | E_STRICT
- --FILE--
- <?php
- /*
- We use an extra test to cover deprecation warning.
- Due to this extra test we can silence deprecation warnings
- in have other test using @ operator without loosing the information
- which function is deprecated and, without reducing test portability.
- */
- include "table.inc";
- if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
- $error = NULL;
- ob_start();
- if (!$res = mysql_db_query($db, "SELECT * FROM test", $link))
- $error .= sprintf("[001] [%d] %s\n", mysql_errno($link), mysql_error($link));
- else
- mysql_free_result($res);
- $output = ob_get_contents();
- ob_end_clean();
- if (!stristr($output, 'deprecated')) {
- printf("[002] mysql_db_query has been deprecated in 5.3.0\n");
- }
- /*
- Deprecated since 2002 or the like but documented to be deprecated since 5.3.
- In 5.3 and before the deprecation message was bound to mysql.trace_mode=1.
- In 5.3.99 the warning will always be thrown, independent of the mysql.trace_mode
- setting.
- */
- $error = NULL;
- ob_start();
- if (!$query = mysql_escape_string("charsets will be ignored"))
- $error .= sprintf("[005] [%d] %s\n", mysql_errno($link), mysql_error($link));
- $output = ob_get_contents();
- ob_end_clean();
- if (!stristr($output, 'deprecated')) {
- printf("[006] mysql_escape_string has been deprecated in 5.3.0\n");
- }
- }
- if (version_compare(PHP_VERSION, '5.3.99') >= 0) {
- $error = NULL;
- ob_start();
- if (!$res = mysql_list_dbs($link))
- $error .= sprintf("[003] [%d] %s\n", mysql_errno($link), mysql_error($link));
- else
- mysql_free_result($res);
- $output = ob_get_contents();
- ob_end_clean();
- if (!stristr($output, 'deprecated')) {
- printf("[004] mysql_db_query has been deprecated in 5.3.0\n");
- }
- }
- print "done!";
- ?>
- --CLEAN--
- <?php
- require_once("clean_table.inc");
- ?>
- --EXPECTF--
- Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in %s on line %d
- done!
|