classMySqlIdentifierQuoter
final class MySqlIdentifierQuoter
implements IdentifierQuoter
MySQL implementation of IdentifierQuoter.
Uses backtick quoting (identifier). Strips surrounding backticks to prevent double-quoting, then escapes any remaining embedded backticks by doubling them.
Methods§
public function quote(string $identifier): stringQuote for the supplied MySQL input.
Parameters
$identifier | string |
Returns
stringTest cases 16
MySqlIdentifierQuoterTest::testQuoteAlreadyQuotedWithEscapedBacktickcallsMySqlIdentifierQuoterTest::testQuotedIdentifierContainsOriginalNamecallsMySqlIdentifierQuoterTest::testQuoteDoesNotDoubleQuoteAlreadyQuotedcallsMySqlIdentifierQuoterTest::testQuoteEmptyBacktickPairStripsWrappingcallsMySqlIdentifierQuoterTest::testQuoteEmptyStringProducesBacktickPaircallsMySqlIdentifierQuoterTest::testQuoteEscapesBacktickInIdentifiercallsMySqlIdentifierQuoterTest::testQuoteEscapesEmbeddedQuoteExactlycallsMySqlIdentifierQuoterTest::testQuoteEscapesQuoteCharacterInIdentifiercallsMySqlIdentifierQuoterTest::testQuoteIsDeterministiccallsMySqlIdentifierQuoterTest::testQuoteProducesExactResultcallsMySqlIdentifierQuoterTest::testQuoteReservedWordcallsMySqlIdentifierQuoterTest::testQuoteReturnsNonEmptyStringcallsMySqlIdentifierQuoterTest::testQuoteSimpleIdentifiercallsMySqlIdentifierQuoterTest::testQuoteWithSpacescallsMySqlIdentifierQuoterTest::testQuoteWrapsIdentifiercallsMySqlIdentifierQuoterTest::testQuoteWrapsWithBacktickscalls
Called from 17
- method-call ZtdQuery\Platform\MySql\Rewrite\LoadData\InsertQuery::buildInsertSql() packages/ztd-query-mysql/src/Rewrite/LoadData/InsertQuery.php:51
- method-call ZtdQuery\Platform\MySql\Rewrite\LoadData\InsertQuery::buildInsertSql() packages/ztd-query-mysql/src/Rewrite/LoadData/InsertQuery.php:52
- method-call ZtdQuery\Platform\MySql\Rewrite\LoadData\InsertQuery::buildInsertSql() packages/ztd-query-mysql/src/Rewrite/LoadData/InsertQuery.php:56
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Delete\TargetProjection::multiTableSelectList() packages/ztd-query-mysql/src/Rewrite/Transformer/Delete/TargetProjection.php:57
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Delete\TargetProjection::multiTableSelectList() packages/ztd-query-mysql/src/Rewrite/Transformer/Delete/TargetProjection.php:58
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Delete\TargetProjection::multiTableSelectList() packages/ztd-query-mysql/src/Rewrite/Transformer/Delete/TargetProjection.php:59
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer::render() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:53
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer::render() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:61
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer::render() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:67
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer::render() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:70
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlSelectListAliaser::alias() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlSelectListAliaser.php:88
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:66
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:68
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:69
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:73
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:74
- method-call ZtdQuery\Platform\MySql\Rewrite\Upsert\ConflictPredicate::conflictPredicate() packages/ztd-query-mysql/src/Rewrite/Upsert/ConflictPredicate.php:34
Test cases 55§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 16
MySqlIdentifierQuoterTest::testQuoteAlreadyQuotedWithEscapedBacktickcallsMySqlIdentifierQuoterTest::testQuotedIdentifierContainsOriginalNamecallsMySqlIdentifierQuoterTest::testQuoteDoesNotDoubleQuoteAlreadyQuotedcallsMySqlIdentifierQuoterTest::testQuoteEmptyBacktickPairStripsWrappingcallsMySqlIdentifierQuoterTest::testQuoteEmptyStringProducesBacktickPaircallsMySqlIdentifierQuoterTest::testQuoteEscapesBacktickInIdentifiercallsMySqlIdentifierQuoterTest::testQuoteEscapesEmbeddedQuoteExactlycallsMySqlIdentifierQuoterTest::testQuoteEscapesQuoteCharacterInIdentifiercallsMySqlIdentifierQuoterTest::testQuoteIsDeterministiccallsMySqlIdentifierQuoterTest::testQuoteProducesExactResultcallsMySqlIdentifierQuoterTest::testQuoteReservedWordcallsMySqlIdentifierQuoterTest::testQuoteReturnsNonEmptyStringcallsMySqlIdentifierQuoterTest::testQuoteSimpleIdentifiercallsMySqlIdentifierQuoterTest::testQuoteWithSpacescallsMySqlIdentifierQuoterTest::testQuoteWrapsIdentifiercallsMySqlIdentifierQuoterTest::testQuoteWrapsWithBacktickscalls
Other tests reaching this symbol 39
MySqlSessionFactoryTestcallsMySqlGeneratedColumnProjectorTestcallsInsertQueryTest::testBuildInsertSqlcallsInsertQueryTest::testBuildInsertSqlLocalAndReplacecallsInsertQueryTest::testOrderedColumnscallsMySqlLoadDataProjectorTestcallsMySqlRewriterTestcallsStatementRewriterTestcallsResultSelectTestcallsTargetProjectionTestcallsDeleteTransformerTestcallsInsertTargetTestcallsResultProjectionTestcallsInsertSelectRendererTestcallsInsertTransformerTestcallsMySqlSelectListAliaserTestcallsMySqlTransformerTestcallsReplaceTransformerTestcallsSelectTransformerTest::testTransformConstructorExplicitCastRenderercallsCteRowsTest::testEmptySelectcallsCteRowsTest::testFormatValuecallsCteRowsTest::testGenerateCtecallsCteRowsTest::testGenerateCteRejectsUnknownEmptyColumnscallsCteRowsTest::testWrapCtecallsResultSelectTestcallsTargetProjectionTestcallsUpdateTransformerTestcallsConflictPredicateTest::testConflictPredicatecallsExpressionBinderTest::testBindExpressioncallsExpressionBinderTest::testBindingAtcallsExpressionBinderTest::testIdentifiercallsExpressionBinderTest::testIncomingBindingcallsExpressionBinderTest::testQualifiedBindingcallsExpressionBinderTest::testSubqueryTokenIndexescallsMetadataColumnsTest::testRendercallsMySqlNativeUpsertProjectorTestcallsQualifiedColumnTest::testQualifiedcallsRowMutationResolverTestcallsMySqlMutationResolverTestcalls
Relations§
Instantiated in 8
- new ZtdQuery\Platform\MySql\Rewrite\GeneratedColumn\MySqlGeneratedColumnProjector::__construct() packages/ztd-query-mysql/src/Rewrite/GeneratedColumn/MySqlGeneratedColumnProjector.php:24
- new ZtdQuery\Platform\MySql\Rewrite\LoadData\MySqlLoadDataProjector::__construct() packages/ztd-query-mysql/src/Rewrite/LoadData/MySqlLoadDataProjector.php:27
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\Delete\TargetProjection::multiTableSelectList() packages/ztd-query-mysql/src/Rewrite/Transformer/Delete/TargetProjection.php:49
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer::__construct() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:26
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlSelectListAliaser::__construct() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlSelectListAliaser.php:24
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\SelectTransformer::__construct() packages/ztd-query-mysql/src/Rewrite/Transformer/SelectTransformer.php:45
- new ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:59
- new ZtdQuery\Platform\MySql\Rewrite\Upsert\MySqlNativeUpsertProjector::__construct() packages/ztd-query-mysql/src/Rewrite/Upsert/MySqlNativeUpsertProjector.php:27
Method calls 17
- method-call ZtdQuery\Platform\MySql\Rewrite\LoadData\InsertQuery::buildInsertSql() packages/ztd-query-mysql/src/Rewrite/LoadData/InsertQuery.php:51
- method-call ZtdQuery\Platform\MySql\Rewrite\LoadData\InsertQuery::buildInsertSql() packages/ztd-query-mysql/src/Rewrite/LoadData/InsertQuery.php:52
- method-call ZtdQuery\Platform\MySql\Rewrite\LoadData\InsertQuery::buildInsertSql() packages/ztd-query-mysql/src/Rewrite/LoadData/InsertQuery.php:56
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Delete\TargetProjection::multiTableSelectList() packages/ztd-query-mysql/src/Rewrite/Transformer/Delete/TargetProjection.php:57
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Delete\TargetProjection::multiTableSelectList() packages/ztd-query-mysql/src/Rewrite/Transformer/Delete/TargetProjection.php:58
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Delete\TargetProjection::multiTableSelectList() packages/ztd-query-mysql/src/Rewrite/Transformer/Delete/TargetProjection.php:59
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer::render() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:53
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer::render() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:61
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer::render() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:67
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer::render() packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:70
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlSelectListAliaser::alias() packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlSelectListAliaser.php:88
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:66
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:68
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:69
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:73
- method-call ZtdQuery\Platform\MySql\Rewrite\Transformer\Update\TargetProjection::multiTableSelectColumns() packages/ztd-query-mysql/src/Rewrite/Transformer/Update/TargetProjection.php:74
- method-call ZtdQuery\Platform\MySql\Rewrite\Upsert\ConflictPredicate::conflictPredicate() packages/ztd-query-mysql/src/Rewrite/Upsert/ConflictPredicate.php:34
Type declarations 6
- type ZtdQuery\Platform\MySql\Rewrite\LoadData\InsertQuery packages/ztd-query-mysql/src/Rewrite/LoadData/InsertQuery.php:22
- type ZtdQuery\Platform\MySql\Rewrite\LoadData\MySqlLoadDataProjector packages/ztd-query-mysql/src/Rewrite/LoadData/MySqlLoadDataProjector.php:19
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\InsertSelectRenderer packages/ztd-query-mysql/src/Rewrite/Transformer/InsertSelectRenderer.php:17
- type ZtdQuery\Platform\MySql\Rewrite\Transformer\MySqlSelectListAliaser packages/ztd-query-mysql/src/Rewrite/Transformer/MySqlSelectListAliaser.php:17
- type ZtdQuery\Platform\MySql\Rewrite\Upsert\ConflictPredicate packages/ztd-query-mysql/src/Rewrite/Upsert/ConflictPredicate.php:19
- type ZtdQuery\Platform\MySql\Rewrite\Upsert\ExpressionBinder packages/ztd-query-mysql/src/Rewrite/Upsert/ExpressionBinder.php:31