Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jordan Pinheiro_147113

PDO com php e classes

Recommended Posts

Meu cod

<?php

class Banco extends PDO {

	public function __construct() {
		$conn = new PDO();
	}

	public function Insert($banco,$valor1) {

		$lerValor1 = array_keys($valor1);
		$lerValor2 = array_values($valor1);
		$montarQuery1 = implode(',',$lerValor1);
		$montarQuery2 = implode('\',\'',$lerValor2);

		$query = 'INSERT INTO '.$banco.' '.$montarQuery1.' VALUES '.$montarQuery2;
		return $this->exec($query);

	}

}
?>

 

GALERA O Q EU TO FAZENDO ERRADO NA HORA DE EXTENDER O PDO ELE DA ESSE ERRO

 


Warning: PDO::__construct() expects at least 1 parameter, 0 given in C:\VertrigoServ\www\quarto\classes\banco.php on line 6

Warning: PDO::exec() [pdo.exec]: SQLSTATE[00000]: No error: PDO constructor was not called in C:\VertrigoServ\www\quarto\classes\banco.php on line 17

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta passar os parâmetros da classe PDO (http://br.php.net/manual/en/pdo.construct.php) e a algum tempo postei uma classe PDO que já te oferece as funcionalidades necessárias e validação dos dados, ela me atende bem (http://forum.imasters.com.br/topic/448961-completa-classe-crud-com-validacao-de-dados/page__p__1775048__fromsearch__1#entry1775048), mas se ela não te atender existem varias outras na internet que seria bom você olhar.

 

 

Ops. Postei o mesmo link que o Leozitho, más foi pq ainda não tinha visto a resposta dele. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz assim


<?php

class Banco extends PDO {

	public function __construct() {
		$pdo = new PDO("mysql:host=localhost;dbname=quarto", "root", "vertrigo");
	}

	public function Insert($banco,$valor1) {

		$lerValor1 = array_keys($valor1);
		$lerValor2 = array_values($valor1);
		$montarQuery1 = implode(',',$lerValor1);
		$montarQuery2 = implode('\',\'',$lerValor2);

		$query = 'INSERT INTO '.$banco.' '.$montarQuery1.' VALUES '.$montarQuery2;
		return $this->exec($query);

	}

}
?>

 

mas agora da esse erro

 

Warning: PDO::exec() [pdo.exec]: SQLSTATE[00000]: No error: PDO constructor was not called in C:\VertrigoServ\www\quarto\classes\banco.php on line 17

Compartilhar este post


Link para o post
Compartilhar em outros sites

Afinal, por que você está estendendo a classe PDO na classe Banco se você não está reaproveitando nenhum método da classe PDO?

 

A classe PDO serve apenas para fazer a conexão com o banco de dados, para fazer consultas usa PDOStatement. Portanto, aí você já tem um erro conceitual, pois sua classe Banco estende a classe PDO e tem um método Insert, que tem por função inserir dados no banco de dados.

 

Tirando a parte conceitual, no seu construtor você deveria fazer assim:

 

parent::__construct('mysql:host=localhost;dbname=quarto', 'root', 'vertrigo');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu jovem, no seu caso, você tem que chamar o __construct do PDO por parent:: e não por new.

Siga o exemplo do Leozitho...

 

Mas eu sinceramente não gosto do PDO, não são todas as hospedagens que liberam.

Ha um tempo atrás eu desenvolvi uma API de MySQL semelhante ao PDO, em breve eu posto no Laboratório de Scripts...

Compartilhar este post


Link para o post
Compartilhar em outros sites

rsrs valeu galera... onde eu posso conseguir conteúdo melhor sobre PDO n achei muita coisa no google.. eu fiz e funfou beleza pura agora tipo eu quero pegar o macete tipo.. eu já sei sei usar o $this->exec().. mas comando como o mysql_num_rows como eles ficam no PDO

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.