Comments (6)
I agree in all mentioned points.
We should tackle them one at a time
from phpstan-dba.
There are also bindColumn
and bindParam
.
from phpstan-dba.
I tried looking at this, but I can't really wrap my head around php-parser's AST.
It seems that it would be pretty similar to findQueryStringExpression
, where it finds the parent node, and then traverses the children for all the bind*
calls.
from phpstan-dba.
It seems that it would be pretty similar to
findQueryStringExpression
, where it finds the parent node, and then traverses the children for all thebind*
calls.
exactly. we can only support use-cases where the bindValue
(et. all) and the execute
are done within the same method.
similar to https://github.com/staabm/phpstan-dba/blob/main/src/Extensions/PdoStatementExecuteTypeSpecifyingExtension.php in which we find the corresponding sql query arg of ->prepare()
which needs to be executed starting from the line where execute()
is called
from phpstan-dba.
I tried looking at this, but I can't really wrap my head around php-parser's AST.
for those cases I put the unit test code into https://phpast.com/ and inspect the AST which gets generated.
it helps to find the proper traversing.
from phpstan-dba.
While there's basic support for this now, there's still things to do. In particular with bind calls being inside of if
statements.
As well as bind calls should be an error when there are also parameters being passed into execute
.
Not sure if it's worth exploring support for passing in PDO::PARAM_* as third argument in bind calls.
from phpstan-dba.
Related Issues (20)
- Argument expects a literal string, got literal-string HOT 5
- Connection::insert data inference does not use indicated Types HOT 4
- mysqli: error on invalid escaping HOT 5
- Query AST analysis? HOT 2
- Get AST data from `$queryReflection->getResultType` HOT 15
- AST doubts regarding null/not-null HOT 4
- AST: inconsistent behavior with functions and aliases HOT 4
- Analyzing multiple connections HOT 6
- Right vs left join HOT 2
- AST: generic operator support HOT 2
- pgsql support for AST HOT 2
- give up sql based narrowing in case sqlftw cannot parse the query
- pgsql support for uuid type
- Support for (PDO->prepare())->execute() HOT 6
- generic type mysqli_result error with phpstan v1.10.36 and v1.10.37 HOT 2
- Support for custom API's for type inference HOT 1
- Check driver differences
- dibi support DATE_FORMAT
- Psalm support
- Using with doctrine/dbal HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from phpstan-dba.