Ir para conteúdo

POWERED BY:

Arquivado

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

gedmilson

where não funciona

Recommended Posts

já tentei usar on insert, delete e update mas nada funciona alguém já passou por uma situação melhante e conseguil resouver?

 

o codigo funte está aqui em baixo.

mas não importa o que eu faça o where não funciona

 

 

<?php
function __autoload($class){require_once"{$class}.class.php";}

abstract class ConDB

{
private static $cnx;
private function setConn()
{
return
is_null(self::$cnx)?
self::$cnx=new PDO('mysql:host=localhost;dbname=desenvolvendophp','admin','admin'):
self::$cnx;
}
public function getConn()
{return $this->setConn();}
}
$crud=new CRUD;
$sel=$crud->select('email','usuario','WHERE idUsuario=?',array(5));
foreach($sel as $reg);
{
var_dump($reg);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que isso amigo? :upset:

 

Comece estudando o básico.

 

 

http://php.net/manual/pt_BR/language.oop5.php

 

http://php.net/manual/pt_BR/language.oop5.autoload.php

 

Estou acompanhando um curso de php pdo dez de o inicio o meu problema é que simplismente o clausula where não está funcionando não sei se é um problema com o Wamp. a unica coisa que sei é que

 

por exemplo se coloco assim

 

select * from tabela

 

funciona tudo bem. Mostra todo o contepúdo sem problema

mas se coloco.

 

select * from tabela where fulano

 

não aparece absolutamente nada não importa se o nome existe ou não na tabela.

fiz do seguinte modo primeiro fiz um crud assim mostrando todas as funções com pdo e php

 

<?php

class CRUD extends ConDB

{

private $query;

private function prepExec($prep,$exec)

{

$this->query=$this->getConn()->prepare($prep);

$this->query->execute($exec);

}

 

public function insert($table,$prep,$exec)

{

$this->prepExec('INSERT INTO ' . $table . ' SET ' . $prep . '', $exec);

return $this->getConn()->lastInsertId();

}

public function select($fields,$table,$cond,$exec)

{

$this->prepExec('SELECT '.$fields.' FROM '.$table.' '.$cond.' ',$exec);

return $this->query;

}

public function update($table,$cond,$exec)

{

$this->prepExec('UPDATE '.$table.' SET '.$cond.'', $exec);

}

 

public function delete($table,$cond,$exec)

{

$this->prepExec('DELETE FROM '.$table.''.$cond.'',$exec);

}

}

 

 

até ai funciona. depois chamo a função ConDB.php

 

<?php

function __autoload($class){require_once"{$class}.class.php";}

 

abstract class ConDB

 

{

private static $cnx;

private function setConn()

{

return

is_null(self::$cnx)?

self::$cnx=new PDO('mysql:host=localhost;dbname=desenvolvendophp','admin','admin'):

self::$cnx;

}

public function getConn()

{return $this->setConn();}

}

 

O problema é que quando chamo a funçao crud para me retornar quantos usuarios tem com a senha e o nome não me retorna a nenhum resultado.

$crud=new CRUD;

$sel=$crud->select('email','usuario','WHERE idUsuario=?',array(5));

foreach($sel as $reg);

{

var_dump($reg);

}

 

Ai fiz o teste com outras funções como por exemplo

 

a insert funcionou normalmente o problema e quando uso a função WHERE. para pesquisar

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apesar que é para fins didáticos, é um exemplo de CRUD bem tosco.

 

Não é necessário passar a WHERE no parâmetro

$crud->select('email','usuario','idUsuario=?', array(5));

Faça estas verificações já no objeto.

public function select($fields, $table, $cond=null, $exec=null)
{
	
	$sql = "SELECT $fields FROM $table";
	if(isset($cond)){
		$sql .= " WHERE $cond";
	}
	
	var_dump($sql);
			
	$this->prepExec($sql, $exec);
	
	return $this->query;
}

Eu particularmente passaria estes dados via array e manipulava do outro lado.

$array = array(
		'fields' => array(
			'email'
		),
		'table' => array(
			'usuario'
		),
		'conditions' => array(
			'idUsuario' => 5,
		),
		'limit' => 1,
	);

$crud->select($array);

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.