Php 无法解析列';uid';

Php 无法解析列';uid';,php,sql,phpstorm,Php,Sql,Phpstorm,我从一个文件中剪切了代码,创建了一个新文件,并将代码粘贴到新文件中 我的代码包括这一行: $query = $this->matchDao->rawSQL("SELECT uid FROM $table WHERE $sqlColumn IS NOT NULL ORDER BY ABS($sqlColumn - $val) LIMIT 2"); PhpStorm给了我这个错误: 无法解析列“uid” 怎么会这样?在我的另一个文件中,这一切都很好,我没有收到这个错误。我不知道为什么一

我从一个文件中剪切了代码,创建了一个新文件,并将代码粘贴到新文件中

我的代码包括这一行:

$query = $this->matchDao->rawSQL("SELECT uid FROM $table WHERE $sqlColumn IS NOT NULL ORDER BY ABS($sqlColumn - $val) LIMIT 2");
PhpStorm给了我这个错误:

无法解析列“uid”


怎么会这样?在我的另一个文件中,这一切都很好,我没有收到这个错误。

我不知道为什么一个文件显示错误而另一个文件没有

但我的解决方案是使用,错误消失了

$query = $this->matchDao->rawSQL( /** @lang text */ "SELECT uid FROM $table WHERE $sqlColumn IS NOT NULL ORDER BY ABS($sqlColumn - $val) LIMIT 2");

您正在告诉PhpStorm查看
$table
中的uid列,但由于
$table
是一个变量,因此在执行代码之前无法对其进行评估。所以干脆忽略这些错误。您可以在PHPStorm首选项中减少它们的“错误分数”。您的“其他文件”是什么?@Martin其他文件的代码完全相同,但只有另一个类名。只是想知道为什么我在另一个文件中没有得到相同的错误。如果不知道更多关于文件/tech/setup的信息,就无法提出任何具体的建议。但总体而言,Martin是正确的——IDE并不能很好地处理动态表名。它支持一些情况,但只支持其中的一些。如果是相同的内容,并且文件彼此相邻,那么它们应该以相同的方式处理。这是因为您告诉PHPStorm不要将该文本作为SQL来处理。