Я пытаюсь вставить 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);
Im Попытка показать те же результаты, но заменить идентификаторы фактическим текстом. Запрос работает, когда я запускаю его в MySql.
PS Все еще работаю над обучением использованию псевдонимов, поэтому заранее извиняюсь.
Я только что узнал, что ключевое слово "Где" должно было идти к концу. Урок выучен!
$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."%' ";