Skip to content

Commit dd1b35a

Browse files
committed
Escape LIKE metacharacters
1 parent 4ea3b4d commit dd1b35a

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

lib/Doctrine/DBAL/Platforms/AbstractPlatform.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3578,4 +3578,22 @@ public function getStringLiteralQuoteCharacter()
35783578
{
35793579
return "'";
35803580
}
3581+
3582+
/**
3583+
* Escapes metacharacters in a string intended to be used with a LIKE
3584+
* operator.
3585+
*/
3586+
public function escapeStringForLike(string $untrustedString): string
3587+
{
3588+
$replacePairs = [];
3589+
$escapeChar = $this->getLikeEscapeChar();
3590+
foreach ($this->getLikeMetaCharacters() as $metaChar) {
3591+
$replacePairs[$metaCharacter] = $escapeChar.$metaChar;
3592+
}
3593+
3594+
return strtr($untrusted, $replacePairs);
3595+
}
3596+
3597+
abstract protected function getLikeEscapeChar();
3598+
abstract protected function getLikeMetaCharacters();
35813599
}

0 commit comments

Comments
 (0)