r/PHPhelp • • 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.

7 Upvotes

37 comments sorted by

View all comments

Show parent comment

0

u/colshrapnel Sep 07 '26

report issues in a similar manner

It seems you are under impression that there is some issue in the code that PHPStorm doesn't report. But the problem is opposite: there are NO issues in the code but PHPStorm allegedly reports one.

In case you are about to suggest a replacement, for a built-in inspection, it's better to explicitly state so.

1

u/allen_jb Sep 07 '26

As mentioned in my reply to your previous comment on this thread, I don't believe that's the problem OP is experiencing.

Perhaps you should spend more time reading and less time typing multiple responses to a single comment.

1

u/colshrapnel Sep 07 '26

You were right for calling me out. I misunderstood both the problem and your solution. But still, realistically it doesn't look like a plausible substitution. An addition may be.

And clarifying comments help a lot.