Skip to content

Commit

Permalink
Added a new test for Issue 1258
Browse files Browse the repository at this point in the history
  • Loading branch information
yitam committed May 14, 2021
1 parent ba65baf commit b40abfe
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions test/functional/pdo_sqlsrv/pdo_1258_is_callable_error.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
--TEST--
GitHub issue 1258 - is_callable() throws an exception if PDOStatement method does not exist
--DESCRIPTION--
The test shows is_callable() will return false if PDOStatement method does not exist instead of throwing an exception. The user can still check errorInfo() for the error message. See documentation https://www.php.net/manual/en/function.is-callable.php
--ENV--
PHPT_EXEC=true
--SKIPIF--
<?php require('skipif.inc'); ?>
--FILE--
<?php
require_once("MsSetup.inc");
require_once("MsCommon_mid-refactor.inc");

try {
$conn = connect();
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $conn->prepare("SELECT @@Version");
$functionExists = is_callable([$stmt, 'bindParam'], false, $callable);
var_dump($functionExists);
var_dump($callable);

$functionExists = is_callable([$stmt, 'boo']);
var_dump($functionExists);

echo PHP_EOL . "Error INFO:" . PHP_EOL;
var_dump($conn->errorInfo());

echo "Done\n";
} catch (PdoException $e) {
echo $e->getMessage();
}

?>
--EXPECT--
bool(true)
string(23) "PDOStatement::bindParam"
bool(false)

Error INFO:
array(3) {
[0]=>
string(5) "IMSSP"
[1]=>
int(-58)
[2]=>
string(48) "This function is not implemented by this driver."
}
Done

0 comments on commit b40abfe

Please sign in to comment.