filisko / pdo-plus Goto Github PK
View Code? Open in Web Editor NEWPDO plus extends PDO in order to log all your queries. This package also includes a Bar Panel for Tracy.
License: MIT License
PDO plus extends PDO in order to log all your queries. This package also includes a Bar Panel for Tracy.
License: MIT License
Log from function execute
with prepared statement is too aggressive with trying to bind values.
Ex.
$pdo->prepare('SELECT * FROM `db0`.`table` WHERE user = ?');
$pdo->execute(['John']);
will be logged as
SELECT * FROM `dbJohn`.`table` WHERE id = ?
See db0
changed to dbJohn
. Problem is in PDOStatement.php#L89 where is missing control, if $input_parameters
are array of values or array of named params. Array of values have numerical indexes from 0.
I will make PR inspired from comment on PHP.net.
Time shown on bar and panel are not in ms. microtime(true)
returns current Unix timestamp with microseconds. Timestamp is in seconds.
When using this library in PHP8, the following error occurs:
Declaration of Filisko\PDOplus\PDO::query($statement, $mode = Filisko\PDOplus\PDO::ATTR_DEFAULT_FETCH_MODE, $arg3 = null, array $ctorargs = []) must be compatible with PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs)
This can easily be fixed by changing the signature to the new one, but probably breaks this library for PHP7.
I don't know wether the two implementations can coexist.
I think a new major version of pdo-plus which is compatible with PHP8 might be the best option. This way we don't break older projects which often only get minor and patch version updates.
PHP7.4 only has active support for 7 months left, so most new projects will be using PHP8 since it is the current stable version.
See this link for the official PHP version support: https://www.php.net/supported-versions.php
Is support for PHP 8.1 coming soon?
Since \Filisko\PDOplus\PDOStatement
does not extend \PDOStatement
This library does not work anywhere where parameter types are enforced. This is not a problem with the PDO
class that follows LSP.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.