File: mysql_deprecated_api.phpt

package info (click to toggle)
php5 5.6.33%2Bdfsg-0%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 157,872 kB
  • sloc: ansic: 756,065; php: 22,030; sh: 12,311; cpp: 8,771; xml: 6,179; yacc: 1,564; exp: 1,514; makefile: 1,467; pascal: 1,147; awk: 538; perl: 315; sql: 22
file content (79 lines) | stat: -rw-r--r-- 2,137 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
--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!