Ваш запрос выглядит нормально.Я думаю, что вам просто нужно понять некоторые тонкости разбора строк в PHP.
Когда вы используете двойные кавычки ("), чтобы заключить строку, PHP фактически попытается проанализировать ее, ища переменные и / илисначала нужно обработать другой php-код. Примерно так:
$sql = "SELECT * FROM table WHERE state = '{$state}' AND user = {$user->id}";
PHP заменит $ state для того, что определено в этой переменной, и то же самое для идентификатора любого пользователя, созданного в этом классе. (Такжевам не нужно переносить простые переменные в {}. Это помогает с удобочитаемостью, но требуется только для методов / переменных класса.)
Если вы используете одинарные кавычки (') для заключения строки,PHP просто обрабатывает его как нормальный. Для вашего запроса выше я бы предложил заключить его в одинарные кавычки, например:
$sql = 'SELECT * FROM senateinfo WHERE state = (Variable = "stname") ORDER BY last_name, first_name)';
Если вы хотите использовать переменные позже в этом запросе, вам нужно будет экранироватьдвойные кавычки, которые там есть, вот так:
$sql = "SELECT * FROM senateinfo WHERE state = (Variable = \"stname\") ORDER BY last_name, first_name)";
Таким образом, PHP не ошибается, думая, что вы пытались объединить строкинеправильно, когда все, что вы делали, это вставляли запрос.