Comando SQL Fatal

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; apresenta esse erro na hora que envio os dados..

o codigo.

public function getMenorPreco($id_cotacao, $id_solicitacao, $preco) {

$sql = "SELECT * FROM item_cotacao co, contato c, status_item_cotacao sc, produto p WHERE co.id_fornecedor = c.id_contato AND co.id_status_item_cotacao = sc.id_status_item_cotacao AND co.id_produto = p.id_produto AND id_solicitacao = $id_solicitacao AND id_cotacao = $id_cotacao AND valor_cotacao = $preco LIMIT 1 ";

$qry = $this->db->query($sql);

return $qry->fetch(\PDO::FETCH_OBJ);

}

o que tem de erro ae..

O usuário tem acesso às tabelas? Em questão de sintaxe não vi problemas na SQL, porém é bem melhor usar JOINS ao invés dessa listagem no FROM. Creio que no seu exemplo seriam todos INNER JOIN. Além disso é bom usar Prepared statements no PHP.

Os campos id_solicitacao, id_cotacao e valor_cotacao só existem em 1 tabela? Se eles existem em mais de uma tabela lembre-se de colocar o nome da tabela antes para identificar de qual tabela você está querendo pegar.

Você está executando isso no Fluig? o.O

opa, eu descobri pq dava erro, nao tinha nada na tabela pra ele retornar, por isso o erro, tb descobri que nao estava indo os dados pra tabela e ela ficando vazia dava erro. obrigado. pela dica . valeu.