在php变量中插入sql语句

kq0g1dla  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(314)

我正在尝试将sql语句插入到变量中。语句包含用户在搜索栏中输入的关键字。但是,由于某些原因,我可以不断得到错误“尝试获取非对象的属性”。下面是我的代码:

public function searchTable() {                  
      $sql = "SELECT grades_eng.Grade, domain_math_eng.Domain, cluster_eng.Cluster, math_standards_eng.Standard FROM ".$this->standardsTable." 
              WHERE Standard LIKE '%".$this->keyword." %'
              INNER JOIN grades_eng ON math_standards_eng.Grade_Id = grades_eng.Id 
              INNER JOIN domain_math_eng ON math_standards_eng.Domain_Math_Eng_Id = domain_math_eng.Id
              INNER JOIN cluster_eng ON math_standards_eng.Cluster_Eng_Id = cluster_eng.Id";

      $results = $this->conn->query($sql);
      //returns array
      return $results;
      }

正在使用的对象的代码:

$search = new SearchResult($conn, $subject, $keyword);
$queryResults = $search->searchTable();
$search->displayResults($queryResults);

我确信是我的sql查询导致了错误,因为当我使用以下代码时,它会显示结果:

$sql = "SELECT * FROM ".$this->standardsTable." WHERE Standard LIKE '%".$this->keyword."%' ";
$results = $this->conn->query($sql);

我试图显示相同的结果,但替换为实际文本的ID。当我在mysql中运行查询时,它确实可以工作。
p、 她还在学习使用化名,所以我提前道歉。

gcxthw6b

gcxthw6b1#

我刚刚了解到,“where”关键字应该放在最后。吸取教训!

$sql = "SELECT grades_eng.Grade, domain_math_eng.Domain, cluster_eng.Cluster, math_standards_eng.Standard FROM ".$this->standardsTable." 
      INNER JOIN grades_eng ON math_standards_eng.Grade_Id = grades_eng.Id 
      INNER JOIN domain_math_eng ON math_standards_eng.Domain_Math_Eng_Id = domain_math_eng.Id
      INNER JOIN cluster_eng ON math_standards_eng.Cluster_Eng_Id = cluster_eng.Id
      WHERE Standard LIKE '%".$this->keyword."%' ";

相关问题