classQueryExecutor
final class QueryExecutor
@visibility public.Rewrites and executes SQL against one session using an injected database platform.
The executor owns execution policy. Session owns mutable virtual state, and Platform supplies database semantics without creating or owning sessions.
Type Aliases§
Row = import from StatementInterface$connect = static fn (\ZtdQuery\Connection\ConnectionInterface $connection, \ZtdQuery\Platform $platform): \ZtdQuery\QueryExecutor => new \ZtdQuery\QueryExecutor($connection, $platform);
$connect instanceof \Closure // => trueMethods§
public function __construct(
private ConnectionInterface $connection,
private Platform $platform,
ZtdConfig $config = new \ZtdQuery\Config\ZtdConfig(),
?Session $session = null,
private ResultSelectRunner $resultSelectRunner = new \ZtdQuery\ResultSelectRunner(),
)Reflect a fresh catalog unless the caller supplies virtual session state. Reflection failures propagate before the executor can be used.
Parameters
$connection | ConnectionInterface | |
$platform | Platform | |
$config | ZtdConfig | |
$session | ?Session | |
$resultSelectRunner | ResultSelectRunner |
Calls 12
- new ZtdConfig line 50
- new ResultSelectRunner line 52
- new Session line 54
- method-call Platform::reflectSchema() line 55
- method-call Platform::reflectViews() line 56
- method-call Platform::createRewriter() line 58
- method-call Session::store() line 58
- method-call Session::registry() line 58
- method-call Session::views() line 58
- new ShadowApplication line 59
- new ReferentialIntegrityEnforcer line 61
- new RewriteRefusal line 65
public function session(): SessionReturn the virtual state shared by statements executed through this executor.
Returns
Test cases 19
BehaviorTarget::executecallsBehaviorTarget::verifycallsSessionTarget::applycallsSessionTarget::verifycallsPgSqlPlatformTest::testCreatedSessionIsEnabledByDefaultcallsPgSqlPlatformTest::testCreateRewriterProvidesIndependentSqlBehaviorcallsPgSqlPlatformTest::testCreateWithEmptyDatabaseReturnsSessioncallsPgSqlPlatformTest::testCreateWithNullParseResultStillWorkscallsPgSqlPlatformTest::testCreateWithTableRegistersSchemaInSessioncallsPgSqlPlatformTest::testCreateWithTablesReflectsSchemacallsPgSqlPlatformTest::testSessionCanBeEnabledAfterCreationcallsPlatformTest::testCreateAnswersASessionThatHasSimulatedNothingYetcallsPlatformTest::testCreateRewriterSuppliesTheCoreExecutionPipelinecallsPlatformTest::testReflectSchemaReadsEveryTableTheDatabaseAlreadyHascallsQueryExecutorTest::testPlatformAndSessionKeepReusedDialectStateIsolatedcallsQueryExecutorTest::testSessionAcceptsAnExplicitCatalogWithoutReflectingThePhysicalConnectioncallsSqlitePlatformTest::testCreateRewriterProvidesIndependentSqlBehaviorcallsSqlitePlatformTest::testCreateWithUnparseableSchemaSkipsTablecallsSqlitePlatformTest::testReflectSchemaWithExistingTablesRegistersDefinitionscalls
Called from 22
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::prepare() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:74
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::query() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:100
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::query() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:109
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::realQuery() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:126
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::realQuery() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:134
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::beginTransaction() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:151
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::commit() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:164
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::rollBack() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:177
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::autocommit() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:191
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::autocommit() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:193
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::releaseSavepoint() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:207
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::savepoint() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:220
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::prepare() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:62
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::query() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:96
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::query() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:101
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::exec() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:132
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::exec() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:154
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::beginTransaction() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:174
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::commit() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:187
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::rollBack() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:200
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::lastInsertId() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:211
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::lastInsertId() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:212
public function platform(): PlatformReturn the injected database semantics and optional capabilities.
Returns
Test cases 4
public function applyShadow(
ShadowMutation $mutation,
ResultSet $resultSet,
string $sql,
): MutationImpactWrites a mutation into the shadow, and remembers the identity it produced.
Parameters
$mutation | ShadowMutation | Mutation to write |
$resultSet | ResultSet | What the rewritten statement read back |
$sql | string | Statement being simulated, for the refusal |
Returns
MutationImpact What the statement came toThrows
DatabaseException When the shadow refuses the statementTest cases 1
SessionTarget::applycalls
Called from 3
- method-call ZtdQuery\QueryExecutor::processExecutedStatement() packages/ztd-query-core/src/QueryExecutor.php:210
- method-call ZtdQuery\QueryExecutor::runResultSelectAndApplyShadow() packages/ztd-query-core/src/QueryExecutor.php:246
- method-call ZtdQuery\QueryExecutor::execStatement() packages/ztd-query-core/src/QueryExecutor.php:281
Calls 3
- method-call ShadowApplication::apply() line 97
- method-call Session::rememberInsertId() line 98
- method-call ShadowApplication::lastInsertIdOf() line 98
public function shouldExecute(RewritePlan $plan): boolWhether the plan's SQL should be executed against the database.
Parameters
$plan | RewritePlan |
Returns
boolCalled from 2
Calls 2
- method-call RewritePlan::kind() line 108
- class-const QueryKind::SKIPPED() line 108
public function needsPostProcessing(RewritePlan $plan): boolWhether the plan requires post-execution processing via processExecutedStatement().
Parameters
$plan | RewritePlan |
Returns
boolCalled from 2
Calls 3
- method-call RewritePlan::kind() line 116
- class-const QueryKind::WRITE_SIMULATED() line 116
- class-const QueryKind::DDL_SIMULATED() line 117
public function createEmptyWriteResult(): ExecuteResultCreate an empty write-simulated result for skipped writes.
Returns
Called from 1
Calls 2
- static-call GenericExecuteResult::fromBufferedRows() line 125
- class-const QueryKind::WRITE_SIMULATED() line 125
public function transactionStatement(string $sql): TransactionStatement|nullAnswers the transaction statement a statement is, if it is one.
Parameters
$sql | string | Statement as it was written |
Returns
TransactionStatement|null What it does to the transaction, or null when it is not oneTest cases 1
BehaviorTarget::executecalls
Called from 4
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::query() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:105
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::realQuery() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:130
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::query() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:97
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::exec() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:150
Calls 1
- method-call SqlRewriter::transactionStatement() line 137
public function copyTarget(string $relation, string|null $fields): CopyTarget|nullAnswers what a COPY statement is written against, where everything it needs is known.
Parameters
$relation | string | Relation as the statement named it |
$fields | string|null | Column list as the statement wrote it, or null for every column |
Returns
CopyTarget|null The target, or null when the dialect has no COPY or the table is undescribedCalls 2
- method-call Platform::copySupport() line 150
- method-call Session::tableDefinition() line 154
public function rewrite(string $sql): RewritePlanRewrite SQL using the configured rewriter.
Applies the configured refusal policy to unsupported SQL and unknown schemas.
Parameters
$sql | string |
Returns
Throws
DatabaseException When config is Exception mode and rewrite fails.Test cases 11
BehaviorTarget::executecallsMySqlPlatformTest::testReflectViewsRegistersReflectedViewscallsPgSqlPlatformTest::testCreateRegistersReflectedPartialUniqueIndexescallsPgSqlPlatformTest::testCreateWithTableRegistersSchemaInSessioncallsPgSqlPlatformTest::testReflectSchemaRegistersReflectedPartitionMetadatacallsPgSqlPlatformTest::testReflectViewsRegistersReflectedViewscallsQueryExecutorTest::testSessionAcceptsAnExplicitCatalogWithoutReflectingThePhysicalConnectioncallsStatementExecutionTest::testPostProcessAppliesResultSelectRowsToTheShadowcallsStatementExecutionTest::testResultUpdatesShadowAndReturnsItsResultcallsSqlitePlatformTest::testReflectSchemaWithExistingTablesRegistersDefinitionscallsSqlitePlatformTest::testReflectViewsRegistersReflectedViewscalls
Called from 4
- method-call ZtdQuery\QueryExecutor::execStatement() packages/ztd-query-core/src/QueryExecutor.php:260
- method-call ZtdQuery\Simulator\StatementSimulator::simulate() packages/ztd-query-core/src/Simulator/StatementSimulator.php:44
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::prepare() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:79
- method-call ZtdQuery\Adapter\Pdo\Session\PreparedQuery::rewrite() packages/ztd-query-pdo-adapter/src/Session/PreparedQuery.php:39
Calls 4
- method-call SqlRewriter::rewrite() line 172
- method-call RewriteRefusal::forUnsupported() line 174
- method-call RewriteRefusal::forUnknownSchema() line 176
- method-call SqlRewriter::emptyResultSelect() line 176
public function splitStatements(string $sql): list<string>Parameters
$sql | string |
Returns
list<string>Called from 1
Calls 1
- method-call SqlRewriter::splitStatements() line 185
public function processExecutedStatement(
RewritePlan $plan,
StatementInterface $statement,
): ExecuteResultProcess an already-executed statement based on the rewrite plan.
This method handles post-execution logic like shadow application for write queries. Use this when you need to control statement preparation and execution externally.
Parameters
$plan | RewritePlan | The rewrite plan from rewrite(). |
$statement | StatementInterface | The already-executed statement. |
Returns
ExecuteResult The execution result.Throws
DatabaseException When the shadow refuses the statementTest cases 1
BehaviorTarget::executecalls
Called from 2
Calls 12
- method-call RewritePlan::kind() line 202
- class-const QueryKind::READ() line 202
- static-call GenericExecuteResult::fromStatement() line 203
- method-call ResultSelectRunner::readResultSet() line 206
- method-call Platform::resultColumnTypeResolver() line 206
- method-call RewritePlan::requireMutation() line 209
- method-call QueryExecutor::applyShadow() line 210
- method-call RewritePlan::sql() line 210
- method-call RewritePlan::returningProjection() line 211
- static-call GenericExecuteResult::fromBufferedRows() line 216
- class-const QueryKind::WRITE_SIMULATED() line 218
- method-call RewritePlan::affectedRowsMode() line 219
public function runResultSelectAndApplyShadow(
RewritePlan $plan,
callable(string): StatementInterface|false $executor,
): array<int, Row>Run result-select query and apply shadow mutation.
This method executes a result-select query using the provided executor, then applies the mutation from the rewrite plan to the shadow store.
Parameters
$plan | RewritePlan | The rewrite plan containing the SQL and mutation. |
$executor | callable(string): StatementInterface|false | Function to execute SQL. |
Returns
array<int, Row> The affected rows.Throws
UnsupportedSqlException When the plan carries no mutation to write.DatabaseException When the shadow refuses the statementCalled from 1
Calls 5
- method-call RewritePlan::requireMutation() line 239
- method-call ResultSelectRunner::runResultSet() line 241
- method-call RewritePlan::sql() line 242
- method-call Platform::resultColumnTypeResolver() line 244
- method-call QueryExecutor::applyShadow() line 246
public function execStatement(string $sql): int|falseExecute an exec-style statement with ZTD rewriting and shadow application.
Parameters
$sql | string | The original SQL statement. |
Returns
int|false The number of affected rows, or false on failure.Throws
DatabaseException When config is Exception mode and rewrite fails.Test cases 3
Called from 1
Calls 7
- method-call QueryExecutor::rewrite() line 260
- class-const QueryKind::SKIPPED() line 262
- class-const QueryKind::READ() line 266
- method-call ConnectionInterface::query() line 267
- method-call ResultSelectRunner::runResultSet() line 276
- method-call Platform::resultColumnTypeResolver() line 279
- method-call QueryExecutor::applyShadow() line 281
Private surface 7§
Implementation details, listed for orientation only.
private Session $sessionprivate SqlRewriter $rewriterprivate ShadowApplication $shadowApplicationprivate RewriteRefusal $refusalsprivate ConnectionInterface $connectionprivate Platform $platformprivate ResultSelectRunner $resultSelectRunner = new \ZtdQuery\ResultSelectRunner()Test cases 55§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 3
Other tests reaching this symbol 52
BehaviorTarget::executecallsBehaviorTarget::verifycallsSessionTarget::__constructcallsSessionTarget::applycallsSessionTarget::verifycallsQueryExecutorBuilder::createcallsMySqlPlatformTest::testCreateRewriterProvidesIndependentSqlBehaviorcallsMySqlPlatformTest::testReflectSchemaAppliesReflectedAnsiQuotesModeToProductionLexingcallsMySqlPlatformTest::testReflectViewsRegistersReflectedViewscallsPgSqlPlatformTest::testCreatedSessionIsEnabledByDefaultcallsPgSqlPlatformTest::testCreateRegistersReflectedPartialUniqueIndexescallsPgSqlPlatformTest::testCreateRewriterProvidesIndependentSqlBehaviorcallsPgSqlPlatformTest::testCreateWithEmptyDatabaseReturnsSessioncallsPgSqlPlatformTest::testCreateWithNullParseResultStillWorkscallsPgSqlPlatformTest::testCreateWithTableRegistersSchemaInSessioncallsPgSqlPlatformTest::testCreateWithTablesReflectsSchemacallsPgSqlPlatformTest::testReflectSchemaRegistersReflectedPartitionMetadatacallsPgSqlPlatformTest::testReflectViewsRegistersReflectedViewscallsPgSqlPlatformTest::testSessionCanBeEnabledAfterCreationcallsPlatformTest::testCreateAnswersASessionThatHasSimulatedNothingYetcallsPlatformTest::testCreateRewriterSuppliesTheCoreExecutionPipelinecallsPlatformTest::testReflectSchemaReadsEveryTableTheDatabaseAlreadyHascallsPreparedQueryTest::testPrepareReportsASilentDriverFailurecallsPreparedQueryTest::testRewriteUsesTheCurrentShadowOnEveryExecutioncallsStatementExecutionTest::testBindingsRemainAvailableAcrossExecutionscallsStatementExecutionTest::testBindParameterRetainsReferencesAcrossRepreparationcallsStatementExecutionTest::testExecutePreparedRefreshesShadowReadsAndReplaysBindingscallsStatementExecutionTest::testExecuteSilentFailureDoesNotProduceAShadowResultcallsStatementExecutionTest::testFetchAllReturnsAssociativeRowscallsStatementExecutionTest::testNativeUnrewrittenExecutionDelegatesToTheNativeStatementcallsStatementExecutionTest::testPostProcessAppliesResultSelectRowsToTheShadowcallsStatementExecutionTest::testResultColumnsRemainAvailableAfterRowsAreConsumedcallsStatementExecutionTest::testResultUpdatesShadowAndReturnsItsResultcallsStatementExecutionTest::testRowCountTracksNativeMutationscallsStatementSimulatorTestcallsSqlitePlatformTest::testCreateRewriterProvidesIndependentSqlBehaviorcallsSqlitePlatformTest::testCreateWithUnparseableSchemaSkipsTablecallsSqlitePlatformTest::testReflectSchemaWithExistingTablesRegistersDefinitionscallsSqlitePlatformTest::testReflectViewsRegistersReflectedViewscallsZtdPdoStatementTest::testBindColumnFillsTheVariableTheColumnIsReadIntocallsZtdPdoStatementTest::testDebugDumpParamsWritesTheDumpRatherThanAnsweringItcallsZtdPdoStatementTest::testErrorCodeAnswersNothingWhereTheDriverSaysNothingcallsZtdPdoStatementTest::testErrorCodeAnswersWhatTheDriverSaysWentWrongLastcallsZtdPdoStatementTest::testErrorInfoAnswersWhatTheDriverSaysAboutTheLastFailurecallsZtdPdoStatementTest::testFetchObjectDelegatesWithoutABufferedResultcallsZtdPdoStatementTest::testGetAttributeReadsTheAttributeOffTheStatementItWrapscallsZtdPdoStatementTest::testGetColumnMetaAnswersWhatTheDriverSaysAboutAColumncallsZtdPdoStatementTest::testGetIteratorWalksTheDriversOwnCursorWhereNothingWasBufferedcallsZtdPdoStatementTest::testNextRowsetMovesTheStatementOnToTheDriversNextResultcallsZtdPdoStatementTest::testPassthroughFetchAllForwardsColumnAndCallbackArgumentscallsZtdPdoStatementTest::testPassthroughFetchAllPreservesKeyPairKeyscallsZtdPdoStatementTest::testSetAttributeSetsTheAttributeOnTheStatementItWrapscalls
Relations§
Instantiated in 2
Method calls 41
- method-call ZtdQuery\Simulator\StatementSimulator::simulate() packages/ztd-query-core/src/Simulator/StatementSimulator.php:44
- method-call ZtdQuery\Simulator\StatementSimulator::simulate() packages/ztd-query-core/src/Simulator/StatementSimulator.php:58
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::prepare() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:74
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::prepare() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:79
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::query() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:100
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::query() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:105
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::query() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:109
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::realQuery() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:126
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::realQuery() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:130
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::realQuery() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:134
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::beginTransaction() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:151
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::commit() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:164
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::rollBack() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:177
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::autocommit() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:191
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::autocommit() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:193
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::releaseSavepoint() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:207
- method-call ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution::savepoint() packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:220
- method-call ZtdQuery\Adapter\Mysqli\Session\MysqliResultProcessor::process() packages/ztd-query-mysqli-adapter/src/Session/MysqliResultProcessor.php:28
- method-call ZtdQuery\Adapter\Mysqli\Session\MysqliResultProcessor::process() packages/ztd-query-mysqli-adapter/src/Session/MysqliResultProcessor.php:34
- method-call ZtdQuery\Adapter\Mysqli\Session\StatementExecution::execute() packages/ztd-query-mysqli-adapter/src/Session/StatementExecution.php:77
- method-call ZtdQuery\Adapter\Mysqli\Session\StatementExecution::execute() packages/ztd-query-mysqli-adapter/src/Session/StatementExecution.php:80
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::prepare() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:62
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::prepare() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:70
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::query() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:96
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::query() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:97
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::query() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:101
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::exec() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:132
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::exec() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:136
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::exec() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:150
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::exec() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:154
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::exec() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:161
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::beginTransaction() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:174
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::commit() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:187
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::rollBack() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:200
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::lastInsertId() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:211
- method-call ZtdQuery\Adapter\Pdo\Session\ConnectionExecution::lastInsertId() packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:212
- method-call ZtdQuery\Adapter\Pdo\Session\PreparedQuery::rewrite() packages/ztd-query-pdo-adapter/src/Session/PreparedQuery.php:39
- method-call ZtdQuery\Adapter\Pdo\Session\StatementExecution::execute() packages/ztd-query-pdo-adapter/src/Session/StatementExecution.php:61
- method-call ZtdQuery\Adapter\Pdo\Session\StatementExecution::execute() packages/ztd-query-pdo-adapter/src/Session/StatementExecution.php:67
- method-call ZtdQuery\Adapter\Pdo\Session\StatementExecution::execute() packages/ztd-query-pdo-adapter/src/Session/StatementExecution.php:76
- method-call ZtdQuery\Adapter\Pdo\Session\StatementExecution::postProcess() packages/ztd-query-pdo-adapter/src/Session/StatementExecution.php:93
Type declarations 14
- type ZtdQuery\Simulator\StatementSimulator packages/ztd-query-core/src/Simulator/StatementSimulator.php:24
- type ZtdQuery\Simulator\StatementSimulator packages/ztd-query-core/src/Simulator/StatementSimulator.php:29
- type ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:28
- type ZtdQuery\Adapter\Mysqli\Session\ConnectionExecution packages/ztd-query-mysqli-adapter/src/Session/ConnectionExecution.php:52
- type ZtdQuery\Adapter\Mysqli\Session\MysqliResultProcessor packages/ztd-query-mysqli-adapter/src/Session/MysqliResultProcessor.php:25
- type ZtdQuery\Adapter\Mysqli\Session\StatementExecution packages/ztd-query-mysqli-adapter/src/Session/StatementExecution.php:28
- type ZtdQuery\Adapter\Mysqli\ZtdMysqli::prepare() packages/ztd-query-mysqli-adapter/src/ZtdMysqli.php:169
- type ZtdQuery\Adapter\Mysqli\ZtdMysqliStatement packages/ztd-query-mysqli-adapter/src/ZtdMysqliStatement.php:52
- type ZtdQuery\Adapter\Pdo\Session\ConnectionExecution packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:25
- type ZtdQuery\Adapter\Pdo\Session\ConnectionExecution packages/ztd-query-pdo-adapter/src/Session/ConnectionExecution.php:47
- type ZtdQuery\Adapter\Pdo\Session\PreparedQuery packages/ztd-query-pdo-adapter/src/Session/PreparedQuery.php:26
- type ZtdQuery\Adapter\Pdo\Session\StatementExecution packages/ztd-query-pdo-adapter/src/Session/StatementExecution.php:33
- type ZtdQuery\Adapter\Pdo\ZtdPdo::prepare() packages/ztd-query-pdo-adapter/src/ZtdPdo.php:171
- type ZtdQuery\Adapter\Pdo\ZtdPdoStatement packages/ztd-query-pdo-adapter/src/ZtdPdoStatement.php:52