Jump to content

Recommended Posts

tenhos as 3 seguintes classes:

 

<?php

class Sql extends PDO{

	private $conn;
	//conexão com o banco
	public function __constuct(){ 

		$this->conn = new PDO("mysql:host=localhost;dbname=php7","root","root");

	}

	private function setParams($statment, $parameters = array()){
		
		foreach(parameters as $key => $value) { //associar os parametros ao comando.//chave e o valor

			$this->bindParam($key, $value);

		}

	}

	private function setParam($statment, $key, $value){

			$statment->bindParam($key, $value);
		
	}

	public function query($rawQuery,$params = array()){ //1-parametro a ser tratato e 2 os dados
		
		$stmt = $this->$conn->prepare($rawQuery); // 

		$this->setParams($stmt, $params);

		$stmt->execute();

		return $stmt;

	}


	public function select ($rawQuery, $params = array()):array 
	{

		$stmt = $this->query($rawQuery, $params);

		$stmt->fetchAll(PDO::FETCH_ASSOC);
	}
}
<?php
	spl_autoload_register(function($class_name){

		$filename = $class_name.".php";

		if(file_exists(($filename))){
			require_once($filename);
		}
});


?>
<?php

	require_once("config.php");

	$sql = new Sql();

	$usuarios = $sql->select("SELECT * FROM tb_usuarios");

	echo json_encode($usuarios);

?>

e esta dando o erro :

 

Fatal error: Uncaught TypeError: PDO::__construct() expects at least 1 parameter, 0 given in C:\xampp\htdocs\DAO\index.php:5 Stack trace: #0 C:\xampp\htdocs\DAO\index.php(5): PDO->__construct() #1 {main} thrown in C:\xampp\htdocs\DAO\index.php on line 5

 

o engrçado é que peguei em uma videoaula e esta igual ao do professor

 

diz que tem q passar um parametro, mas no dele não tem parametro

Share this post


Link to post
Share on other sites

Você escreveu __construct errado. Está __constuct (sem o R).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Kelven
      Bom dia pessoal tudo bem?
      Então, estou trabalhando em um site em php e preciso usar a api do facebook para obter o feed do instagram, porém a chave token é um conteúdo muito sensível, então decidi fazer em php para ela não ficar disponível do lado do cliente. Alguém sabe me dizer se é possível fazer isso? Porque eu pesquisando no google só achei maneiras de fazer em javascript.
    • By gersonab
      Boa noite, tenho pesquisado porém não encontrei, então vamos lá.
      tenho uma lista de itens ( documentos ) cadastrados no banco de dados e os seus respectivos arquivos em uma pasta, se eu preciso de um deles clico e faço o download deste, no entanto como fazer para fazer o download de vários ao selecionar com checkbox os que eu quero ?
      desculpem por não postar nenhum código, mas é que não estou sabendo como fazer os downloads de vários.
      Qual o procedimento correto ?
       
    • By Willian Simione
      Estou com duas tabelas onde  uma eu somo o km de cada carro, e outra que eu somo a quantidade de litragem abastcido, porem tem carro que não abastece na garagem e na hora d eeu mostrar  a media por carro abastecido ele acaba entrando no somatório e é onde da o erro Warning: Division by zero in, como faço pra fazer essa soma e excluir os carro que não estao com o abastecimento.Abaido deixo as tabelas
       
      Esse soma o KM , todos os carro tem KM
       $soma4 = $conectar->query("SELECT SUM(tkm) AS total FROM cad_km where carro='$carro'");
         $count4 = $soma4->fetchColumn();
      Esse soma a Litragem, porem o tem carro que não abastece, 
         $soma3 = $conectar->query("SELECT round(SUM(litros),0) AS total FROM cad_abastec where dtabastec BETWEEN '$data1' AND '$data2' and carro='$carro'");
         $count3 = $soma3->fetchColumn();
       

       
    • By Mauricio Molina
      Bom dia.
       
      Estou precisando de um freelancer em PHP.
       
      Resolver um problema em um script de portal de noticias, onde a imagem não esta sendo upada, fica apenas em "em processamento".
       
      Contato: contato@weblina.com.br
       
      Obrigado!

    • By gersonab
      Boa tarde, preciso fazer uma busca por um ou mais itens, consigo fazer a busca pelo mês e ano, porém se eu quiser colocar tb a pessoa e mais uma condição não esta dando certo.
      <?php $mes=(int)$_POST['mes']; $ano=(int)$_POST['ano']; $idp=(int)$_POST['idp']; $pagoparc=$_POST['pagoparc']; $consulta1 = $pdo->query("SELECT parcelas.idpar, parcelas.procid, parcelas.procli, parcelas.proadv, parcelas.valorp,parcelas.valorpe, parcelas.valoradv, parcelas.valorpago, parcelas.datapar, parcelas.datapago, parcelas.pagoparc, parcelas.obspar, cli.idc, cli.nomec, proc.idpr, proc.proces, prof.idp, prof.nomep FROM parcelas LEFT JOIN cli ON cli.idc = parcelas.procli LEFT JOIN proc ON proc.idpr = parcelas.procid LEFT JOIN prof ON prof.idp = parcelas.proadv WHERE Month(parcelas.datapar) = $mes AND YEAR(parcelas.datapar) = $ano AND parcelas.proadv LIKE '%$idp%' AND parcelas.pagoparc LIKE '%$pagoparc%' ORDER BY parcelas.idpar ASC"); while ($user1 = $consulta1->fetch(PDO::FETCH_ASSOC)) { ?> desta forma retorna todos os resultados independente do mês  e ano
       
      <?php $mes=(int)$_POST['mes']; $ano=(int)$_POST['ano']; $idp=(int)$_POST['idp']; $pagoparc=$_POST['pagoparc']; $consulta1 = $pdo->query("SELECT parcelas.idpar, parcelas.procid, parcelas.procli, parcelas.proadv, parcelas.valorp,parcelas.valorpe, parcelas.valoradv, parcelas.valorpago, parcelas.datapar, parcelas.datapago, parcelas.pagoparc, parcelas.obspar, cli.idc, cli.nomec, proc.idpr, proc.proces, prof.idp, prof.nomep FROM parcelas LEFT JOIN cli ON cli.idc = parcelas.procli LEFT JOIN proc ON proc.idpr = parcelas.procid LEFT JOIN prof ON prof.idp = parcelas.proadv WHERE Month(parcelas.datapar) = $mes AND YEAR(parcelas.datapar) = $ano AND parcelas.proadv = $idp AND parcelas.pagoparc = $pagoparc ORDER BY parcelas.idpar ASC"); while ($user1 = $consulta1->fetch(PDO::FETCH_ASSOC)) { ?> já desta forma me retorna este erro :
      Fatal error: Call to a member function fetch() on a non-object in
       
      lembro que nesta busca posso ter ou não o idp e ou pagoparc
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.