Call to a member function fetch() on boolean on line 21

11/03/2020

0

Prezados bom dia,
acredito que esta pergunta foi respondida anteriormente, me perdoe pois preciso aprender para entender.. encontro dificuldades para resolver este erro descrito no titulo desta pergunta. segue o código abaixo:

3 Class saciab{
4
5	private $pdo;
6	public function __construct($dbname, $host, $user, $senha)
7	{
8	try{$this->pdo = new PDO("mysql:dbname=".$dbname.";host=".$host,$user,$senha);}
8	catch (PDOException $saciab) {echo "Erro com banco de dados ".$saciab->getMessage(); exit();}
10	catch (PDOException $saciab) {echo "Erro genérico ". $saciab->getMessage();}
11	}
12
13	// CCA.PHP
14		//Cadastro de Empresa//
15 public function cad_empresa ($rc,$cnpj_novo,$empresa,$natureza, $segmento,$funcionarios,$socios, $cep_novo,$endereco,$numero, $bairro,$municipio,$uf, $referencia,$telefone_emp_novo,$dt_abertura,$i_municipal,$i_estadual,$v_sanit)  
16	{
17	global $pdo;
18	$cmd = array();
19	$cmd = $this->pdo->query("INSERT INTO empresa (  rc ,cnpj ,empresa   ,natureza   ,segmento   ,funcionarios   ,socios,empresa_cep,empresa_endereco,empresa_numero,empresa_bairro,empresa_municipio,empresa_uf,empresa_referencia,empresa_telefone    ,abertura      ,i_municipal   ,i_estadual   ,v_sanit) 
20   VALUES ('$rc','$cnpj_novo','$empresa','$natureza','$segmento','$funcionarios','$socios','$cep_novo','$endereco'     ,'$numero'     ,'$bairro'     ,'$municipio'     ,'$uf'     ,'$referencia','$telefone_emp_novo','$dt_abertura','$i_municipal','$i_estadual','$v_sanit')");

21 $res = $cmd->fetch(PDO::FETCH_ASSOC);
	return true;
}


Não entendo e compreendo onde está o erro para resolver, prezados podem me ajudar por favor?
um forte abraço para todos.
Leonardo

Leonardo

Responder

Post mais votado

13/03/2020

Fala, Leonardo!

Acredito que esteja tentando recuperar com a variável " $res " as colunas obtidas na consulta SQL. Se esse for seu objetivo, basta remover o PDO::FETCH_ASSOC que você passa em " fetch() ". Uma dica é consultar a documentação do PHP, pois algumas funções foram sofrendo alterações com novas versões, e algumas coisas implementadas seguem versões antigas.

Caso sua dúvida continue, comente novamente.

Abraços!

Fellipe Tavares

Fellipe Tavares
Responder

Mais Posts

13/03/2020

Lucas Lima

Opa Leonardo, o erro está em que após executar PDO->QUERY com a query INSERT INTO, a query é executada diretamente. Além de que o comando fetch é utilizado somente para a query SELECT para atribuir os valores da busca de uma forma específica a variável.

Então, caso queira validar se a saída foi TRUE, crie uma condicional com a variável que recebe o insert, no seu caso if($cmd==true)
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar