Ir para conteúdo

POWERED BY:

Arquivado

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

mexicanox

[Resolvido] Classe que extende PDO

Recommended Posts

beleza pessoal, seguinte, eu to tentando criar uma classe que seja filha da PDO

eu nao to conseguindo na minha classe usar os metodos da PDO

ja tentei de varias formas a ultima é essa abaixo:

 

 

	private $conn;
	private $query;
function __construct(){

		try{
			$this->conn = parent::__construct("mysql:$host->host;dbname=$this->database",$this->usurio,$this->senha);
		}catch (PDOException $e){
      		echo "Erro ao conectar:<br>" .$e->getMessage();
		}
		
		return $this->conn;
	}
	
	public function adiciona($table,$campo){		
		$args = func_num_args();
		$cArg;
		$insertTmp;
		$camposInsert;
		
		
		for($i=1;$i<$args;$i++){
			$cArg = func_get_arg($i);
			if(is_numeric($cArg)) $insertTmp = $cArg;
			else $insertTmp = "'$cArg'";
			($i>=1 && $i<$args-1)?$camposInsert = $camposInsert .$insertTmp .",":$camposInsert = $camposInsert.$insertTmp;
		}
		$this->query = "INSERT INTO $table VALUES($camposInsert);";
		// tentei desses jeitos mas nao deu certo
                $this->exec($this->query);
		//$this->conn->($this->query);
		//parent::exec($this->query);
	}

to precisando de uma ajudinha que eu ja nao tenh omais ideia d que fazer

 

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

	private $conn;
	private $query;
function __construct(){

		try{
			$this->conn = parent::__construct("mysql:$host->host;dbname=$this->database",$this->usurio,$this->senha);
		}catch (PDOException $e){
 		echo "Erro ao conectar:
" .$e->getMessage();
		}

Isso ai é totalmente equivocado, você não precisa criar uma conexão dentro do objeto que deriva PDO utilizando o próprio construtor para tal.

 

<?php
class MyPDO extends PDO {
public function adiciona( $table , $campo ){
	$args = func_num_args();
	$cArg;
	$insertTmp;
	$camposInsert;

	for ( $i = 1 ; $i < $args ; $i++ ) {
		$cArg = func_get_arg( $i );
		if ( is_numeric( $cArg ) )
			$insertTmp = $cArg;
		else
			$insertTmp = "'$cArg'";
		( $i >= 1 && $i < $args - 1 ) ? $camposInsert = $camposInsert . $insertTmp . "," : $camposInsert = $camposInsert . $insertTmp;
	}
	$this->query = "INSERT INTO $table VALUES($camposInsert);";
	// tentei desses jeitos mas nao deu certo
	$this->exec( $this->query );
	//$this->conn->($this->query);
//parent::exec($this->query);
}
}

$pdo = new MyPDO( 'mysql:host=127.0.0.1;dbname=test' , 'user' , 'pswd' );
$pdo->adiciona( 'tabela' , $campo );

 

Estude herança e procure conhecer os padrões de projeto, lhe ajudarão a compreender os conceitos.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente desculpe a demora :D

 

Eu tava com uns problemas aqui no pc ai eu decedi instalar o ubuntu ai complico um pouco, por issso a demora.

 

Enfim, agora ta funcionando tudo certinho, muito obrigado pela ajuda.

 

flws

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.