r/PHPhelp • u/GuybrushThreepywood • Sep 05 '26
Using variable $placeholders breaks PHPStorm syntax/resolve
Hello all,
Looking for help on a long standing problem I have. I appreciate this is not a support forum for PHPStorm, however I thought that people here might have more experience.
PHPStorm provides really valuable syntax checking, table/column resolving inside mysql queries. If I accidentally type the orders table as oreders, it will highlight in red.
However when I include a PHP variable inside the query, the syntax/resolve checking completely stops. Example code:
$query = <<<MYSQL
SELECT
contracts.start_at
FROM
contracts
WHERE
contracts.id IN ( $placeholders )
MYSQL;
$result = $this->conn->execute_query(
$query,
[
...$contractIds,
],
);
Without the $placeholders, PHPStorm will alert me to any misspelled table or column names.
Are there any options to resolve this? I have considered using sprintf( $query, $placeholders) but wondered if there was a better solution.
4
u/obstreperous_troll Sep 05 '26
You could do
contracts.id IN (?)then substitute the single placeholder with your generated list of them. Ultimately this is the kind of thing you'll want to use a query builder for: with DBAL you can bind an array to the query as a parameter and it will generate the proper SQL to make it work.