diff --git a/src/aphront/storage/connection/AphrontDatabaseConnection.php b/src/aphront/storage/connection/AphrontDatabaseConnection.php --- a/src/aphront/storage/connection/AphrontDatabaseConnection.php +++ b/src/aphront/storage/connection/AphrontDatabaseConnection.php @@ -17,7 +17,7 @@ abstract public function getInsertID(); abstract public function getAffectedRows(); abstract public function selectAllResults(); - abstract public function executeRawQuery($raw_query); + abstract public function executeQuery(PhutilQueryString $query); abstract public function executeRawQueries(array $raw_queries); abstract public function close(); abstract public function openConnection(); diff --git a/src/aphront/storage/connection/AphrontIsolatedDatabaseConnection.php b/src/aphront/storage/connection/AphrontIsolatedDatabaseConnection.php --- a/src/aphront/storage/connection/AphrontIsolatedDatabaseConnection.php +++ b/src/aphront/storage/connection/AphrontIsolatedDatabaseConnection.php @@ -66,12 +66,15 @@ return $this->allResults; } - public function executeRawQuery($raw_query) { + public function executeQuery(PhutilQueryString $query) { // NOTE: "[\s<>K]*" allows any number of (properly escaped) comments to // appear prior to the allowed keyword, since this connection escapes // them as "" (above). + $display_query = $query->getMaskedString(); + $raw_query = $query->getUnmaskedString(); + $keywords = array( 'INSERT', 'UPDATE', @@ -94,10 +97,10 @@ "trying to issue a query which does not begin with an allowed ". "keyword (%s): '%s'.", implode(', ', $keywords), - $raw_query)); + $display_query)); } - $this->transcript[] = $raw_query; + $this->transcript[] = $display_query; // NOTE: This method is intentionally simplified for now, since we're only // using it to stub out inserts/updates. In the future it will probably need diff --git a/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php b/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php --- a/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php +++ b/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php @@ -152,7 +152,10 @@ return $result; } - public function executeRawQuery($raw_query) { + public function executeQuery(PhutilQueryString $query) { + $display_query = $query->getMaskedString(); + $raw_query = $query->getUnmaskedString(); + $this->lastResult = null; $retries = max(1, $this->getConfiguration('retries', 3)); while ($retries--) { @@ -165,7 +168,7 @@ array( 'type' => 'query', 'config' => $this->configuration, - 'query' => $raw_query, + 'query' => $display_query, 'write' => $is_write, )); diff --git a/src/xsprintf/queryfx.php b/src/xsprintf/queryfx.php --- a/src/xsprintf/queryfx.php +++ b/src/xsprintf/queryfx.php @@ -4,10 +4,8 @@ $argv = func_get_args(); $query = call_user_func_array('qsprintf', $argv); - $query = $query->getUnmaskedString(); - $conn->setLastActiveEpoch(time()); - $conn->executeRawQuery($query); + $conn->executeQuery($query); } function queryfx_all(AphrontDatabaseConnection $conn, $sql /* , ... */) {