* Check if hljs has language (#699)
* Fix PHP 8 warning in `TracedStatement::getSqlWithParameters()` when null was bound
Since PHP 8.0, [built-in functions like `strtr()` will emit a warning when passing `null` to required string parameters](docs):
```
strtr(): Passing null to parameter #1 ($string) of type string is deprecated
```
This can happen when e.g. binding `PDO::PARAM_NULL` to your query.
[docs]: https://www.php.net/manual/en/migration81.deprecated.php#migration81.deprecated.core.null-not-nullable-internal
---------
Co-authored-by: Barry vd. Heuvel <barryvdh@gmail.com>
* Prevent back reference issues in TracedStatement
* Prevent substring replacement
If a previously replaced value in the query string contains the placeholder
for a future replacement, the string inside was being replaced
Also, PHP allows the bindParameter syntax to omit the leading ':', so we
test to make sure it's there and add it if not