summaryrefslogtreecommitdiff
path: root/ext/pdo
diff options
context:
space:
mode:
authorAdam Baratz <adambaratz@php.net>2016-11-16 18:04:24 -0500
committerAdam Baratz <adambaratz@php.net>2016-11-16 18:06:14 -0500
commit552c95750052a5c4879a9c67e2f2ec126567222c (patch)
tree2c6976fa15e1641d3e1c2de512c9014239bf9a63 /ext/pdo
parent32edd8ff82be87ea93accbae2cc67aef557aa279 (diff)
downloadphp-git-552c95750052a5c4879a9c67e2f2ec126567222c.tar.gz
Remove PDOStatement::activeQueryString()
Diffstat (limited to 'ext/pdo')
-rw-r--r--ext/pdo/pdo_stmt.c34
-rw-r--r--ext/pdo/tests/active_query_string.phpt60
2 files changed, 8 insertions, 86 deletions
diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c
index 413b55da92..7aaf76453b 100644
--- a/ext/pdo/pdo_stmt.c
+++ b/ext/pdo/pdo_stmt.c
@@ -486,12 +486,6 @@ static PHP_METHOD(PDOStatement, execute)
* quoted.
*/
- /* string is leftover from previous calls so PDOStatement::activeQueryString() can access */
- if (stmt->active_query_string && stmt->active_query_string != stmt->query_string) {
- efree(stmt->active_query_string);
- }
- stmt->active_query_string = NULL;
-
ret = pdo_parse_params(stmt, stmt->query_string, stmt->query_stringlen,
&stmt->active_query_string, &stmt->active_query_stringlen);
@@ -510,6 +504,10 @@ static PHP_METHOD(PDOStatement, execute)
RETURN_FALSE;
}
if (stmt->methods->executer(stmt)) {
+ if (stmt->active_query_string && stmt->active_query_string != stmt->query_string) {
+ efree(stmt->active_query_string);
+ }
+ stmt->active_query_string = NULL;
if (!stmt->executed) {
/* this is the first execute */
@@ -528,6 +526,10 @@ static PHP_METHOD(PDOStatement, execute)
RETURN_BOOL(ret);
}
+ if (stmt->active_query_string && stmt->active_query_string != stmt->query_string) {
+ efree(stmt->active_query_string);
+ }
+ stmt->active_query_string = NULL;
PDO_HANDLE_STMT_ERR();
RETURN_FALSE;
}
@@ -2090,22 +2092,6 @@ static PHP_METHOD(PDOStatement, closeCursor)
}
/* }}} */
-/* {{{ proto string PDOStatement::activeQueryString()
- Fetch the last executed query string associated with the statement handle */
-static PHP_METHOD(PDOStatement, activeQueryString)
-{
- PHP_STMT_GET_OBJ;
-
- if (stmt->active_query_string) {
- RETURN_STRING(stmt->active_query_string);
- } else if (stmt->query_string) {
- RETURN_STRING(stmt->query_string);
- } else {
- RETURN_FALSE;
- }
-}
-/* }}} */
-
/* {{{ proto void PDOStatement::debugDumpParams()
A utility for internals hackers to debug parameter internals */
static PHP_METHOD(PDOStatement, debugDumpParams)
@@ -2184,7 +2170,6 @@ const zend_function_entry pdo_dbstmt_functions[] = {
PHP_ME(PDOStatement, setFetchMode, arginfo_pdostatement_setfetchmode, ZEND_ACC_PUBLIC)
PHP_ME(PDOStatement, nextRowset, arginfo_pdostatement__void, ZEND_ACC_PUBLIC)
PHP_ME(PDOStatement, closeCursor, arginfo_pdostatement__void, ZEND_ACC_PUBLIC)
- PHP_ME(PDOStatement, activeQueryString, arginfo_pdostatement__void, ZEND_ACC_PUBLIC)
PHP_ME(PDOStatement, debugDumpParams, arginfo_pdostatement__void, ZEND_ACC_PUBLIC)
PHP_ME(PDOStatement, __wakeup, arginfo_pdostatement__void, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
PHP_ME(PDOStatement, __sleep, arginfo_pdostatement__void, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
@@ -2332,9 +2317,6 @@ PDO_API void php_pdo_free_statement(pdo_stmt_t *stmt)
if (stmt->methods && stmt->methods->dtor) {
stmt->methods->dtor(stmt);
}
- if (stmt->active_query_string && stmt->active_query_string != stmt->query_string) {
- efree(stmt->active_query_string);
- }
if (stmt->query_string) {
efree(stmt->query_string);
}
diff --git a/ext/pdo/tests/active_query_string.phpt b/ext/pdo/tests/active_query_string.phpt
deleted file mode 100644
index a0130e0275..0000000000
--- a/ext/pdo/tests/active_query_string.phpt
+++ /dev/null
@@ -1,60 +0,0 @@
---TEST--
-PDO Common: PDOStatement::activeQueryString()
---SKIPIF--
-<?php
-if (!extension_loaded('pdo')) die('skip');
-$dir = getenv('REDIR_TEST_DIR');
-if (false == $dir) die('skip no driver');
-require_once $dir . 'pdo_test.inc';
-PDOTest::skip();
-
-$db = PDOTest::factory();
-if (!$db->getAttribute(PDO::ATTR_EMULATE_PREPARES) && !$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true)) die('skip driver cannot emulate prepared statements');
-?>
---FILE--
-<?php
-if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
-require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
-
-$db = PDOTest::factory();
-$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
-
-$quoted_true = $db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'pgsql' ? "'t'" : '1';
-
-$stmt = $db->query('SELECT 1');
-var_dump($stmt->activeQueryString()); // works with statements without bound values
-
-$stmt = $db->prepare('SELECT :bool, :int, :string, :null');
-$stmt->bindValue(':bool', true, PDO::PARAM_BOOL);
-$stmt->bindValue(':int', 123, PDO::PARAM_INT);
-$stmt->bindValue(':string', 'foo', PDO::PARAM_STR);
-$stmt->bindValue(':null', null, PDO::PARAM_NULL);
-
-var_dump($stmt->activeQueryString()); // will return unparsed query before execution
-
-$stmt->execute();
-
-// will return parsed query after execution
-var_dump($stmt->activeQueryString() == "SELECT " . $quoted_true . ", 123, 'foo', NULL");
-// can be called repeatedly
-var_dump($stmt->activeQueryString() == "SELECT " . $quoted_true . ", 123, 'foo', NULL");
-
-$stmt->execute();
-
-// works if the statement is executed again
-var_dump($stmt->activeQueryString() == "SELECT " . $quoted_true . ", 123, 'foo', NULL");
-
-$stmt->bindValue(':int', 456, PDO::PARAM_INT);
-$stmt->execute();
-
-// works with altered values
-var_dump($stmt->activeQueryString() == "SELECT " . $quoted_true . ", 456, 'foo', NULL");
-
-?>
---EXPECT--
-string(8) "SELECT 1"
-string(34) "SELECT :bool, :int, :string, :null"
-bool(true)
-bool(true)
-bool(true)
-bool(true)