Ir para conteúdo

POWERED BY:

Arquivado

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

Farias

Erro Call to a member function prepare() on a non-object in

Recommended Posts

Olá o meu script está dando o erro

 

Fatal error: Call to a member function prepare() on a non-object in C:\apache\www\portal\funcoes.php on line 8

 

. Já habilitei o php_pdo-mysql.dll, mesmo assim o erro persiste.

 

Por favor me ajudem!!!

 

meu config.

 

<?php
define('HOST','localhost');
define('DB','dbo_compra');
define('USER','root');
define('PASS','apache');
$conexao = 'mysql:host='.HOST.';dbname='.DB;
try{
$conecta = new PDO($conexao,USER,PASS);
$conecta->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

}catch(PDOexception $error_conecta){
'Erro ao conectar, favor informe no email farias.cs@gmail.com';
}
?>

 

ERRO NA FUNÇÃO

 

<?php function up_homePosts(){

include"Connections/config.php";

$dataVal = date('Y-m-d H:m:s');
$sql = 'SELECT * FROM compra WHERE imovelTermino >= :dataVal ORDER BY imovelId DESC LIMIT 4';
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];

echo '<li>';
echo '<a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=150&w=200&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a>';
echo '<h2><a href="index.php?pg=single&imovel='.$imovelID.'">'.$tipo.' a '.$negocio.'</a></h2>';
echo '<h3><a href="index.php?pg=single&imovel='.$imovelID.'">Valor R$'.$valor.'</a></h3>';
echo '<a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a>';
echo '</li>';


}

}?>

<?php function up_homePostsListaDois(){

include"Connections/config.php";

$dataVal = date('Y-m-d H:m:s');
$sql = 'SELECT * FROM compra WHERE imovelTermino >= :dataVal ORDER BY imovelId DESC LIMIT 4,2';
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];

echo '<li>';
echo '<a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=150&w=200&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a>';
echo '<h2><a href="index.php?pg=single&imovel='.$imovelID.'">'.$tipo.' a '.$negocio.'</a></h2>';
echo '<h3><a href="index.php?pg=single&imovel='.$imovelID.'">Valor R$'.$valor.'</a></h3>';
echo '<a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a>';
echo '</li>';


}

}?>


<?php function up_footerPosts(){

include"Connections/config.php";

$dataVal = date('Y-m-d H:m:s');
$sql = 'SELECT * FROM compra WHERE imovelTermino >= :dataVal ORDER BY RAND() LIMIT 5';
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];

echo '<li>';
echo '<a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=120&w=160&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a>';
echo '<h1><a href="index.php?pg=single&imovel='.$imovelID.'">'.$tipo.' a '.$negocio.'</a></h1>';
echo '<h2><a href="index.php?pg=single&imovel='.$imovelID.'">Valor R$'.$valor.'</a></h2>';
echo '<a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a>';
echo '</li>';


}

}?>


<?php function get_categoria(){

include"Connections/config.php";
$operacao = $_GET['operacao'];
$dataVal = date('Y-m-d H:m:s');
$sql = 'SELECT * FROM compra WHERE imovelTermino >= :dataVal AND imovelNegocio = :operacao ORDER BY imovelId DESC';
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':operacao',$operacao,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];
$dormitorios = $res['imovelComodos'];
$data = $res['imovelCadastro'];

echo '<tr>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';


}

}?>


<?php function get_cliente(){

include"Connections/config.php";
$cliente = $_GET['cliente'];
$dataVal = date('Y-m-d H:m:s');
$sql = 'SELECT * FROM compra WHERE imovelTermino >= :dataVal AND clienteId = :clienteId ORDER BY imovelId DESC';
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':clienteId',$cliente,PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];
$dormitorios = $res['imovelComodos'];
$data = $res['imovelCadastro'];

echo '<tr>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';


}

}?>


<?php function get_search(){

include"Connections/config.php";
$posts = $_POST['p'];
$dataVal = date('Y-m-d H:m:s');
$sql = 'SELECT * FROM compra WHERE imovelTermino >= :dataVal AND imovelTitulo LIKE :imovelTitulo ORDER BY imovelId DESC';
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':imovelTitulo','%'.$posts.'%',PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];
$dormitorios = $res['imovelComodos'];
$data = $res['imovelCadastro'];

echo '<tr>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$negocio.'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';


}

}?>

<?php function get_filtro(){

include"Connections/config.php";

$tipo = $_POST['tipo'];
$categoria = $_POST['categoria'];
$subCat = $_POST['sub-cat'];
$bairro = $_POST['bairro'];

$dataVal = date('Y-m-d H:m:s');
$sql = 'SELECT * FROM compra WHERE imovelTermino >= :dataVal AND imovelNegocio LIKE :tipo AND imovelTipo LIKE :categoria
AND ImovelBairro LIKE :subcat AND imovelComodos LIKE :bairro ORDER BY imovelId DESC';
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':tipo','%'.$tipo.'%',PDO::PARAM_STR);
$query->bindValue(':categoria','%'.$categoria.'%',PDO::PARAM_STR);
$query->bindValue(':subcat','%'.$subCat.'%',PDO::PARAM_STR);
$query->bindValue(':bairro','%'.$bairro.'%',PDO::PARAM_STR);
$query->execute();

$resultado = $query->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}

foreach($resultado as $res){
$imovelID = $res['imovelId'];
$tipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$titulo = $res['imovelTitulo'];
$dormitorios = $res['imovelComodos'];
$data = $res['imovelCadastro'];

echo '<tr>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$negocio.'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';


}

}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

de um print_r ou um var_dump em $conecta

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

echo "<pre>";
print_r($conecta);

Compartilhar este post


Link para o post
Compartilhar em outros sites

gerou um novo erro.

 

Parse error: syntax error, unexpected T_VARIABLE in C:\apache\www\portal\PDO\config.php on line 10

 

minha dúvida é isso realmente é erro de sintaxe? Pois no PHP.ini já fiz todas as habilitações necessárioas. Eu uso o appServ.

 

mudei novamente a posição do print_r e ele disparou o mesmo erro.

 

Fatal error: Call to a member function prepare() on a non-object in C:\apache\www\portal\PDO\create.php on line 19

 

 

Se puder me da uma dica melhor ficarei muito grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Call to a member function prepare() on a non-object

isso aqui quer dizer.... $conecta não é um objeto PDO por isso ele não tem o metodo prepare()

 

 

  $conecta = new PDO($conexao,USER,PASS);

verifique se o usuario e senha estão corretos.

 

 

tente ver o valor de conecta assim:

 

 

$conecta = new PDO($conexao,USER,PASS);
echo "<pre>";
print_r($conecta);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usuario e senha estão corretos, testei como novos parametros e funcionou.

 

tentei também com or trigger_error(mysql_error(),E_USER_ERROR);

 

nem este nem o que vc citou funcionaram.

 

Eu posso substituir o prepare por outro parametro? Minha preocupação que é que toda função está apontando para esses dados e uma troca poderia ser extramente trabalhosa para refazer todos os processos do sistema.

 

Desde já agradeço a paciencia em me ajudar. Pois não sou expert em php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oq aparece escrito na tela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparece o mesmo erro, Fatal error: Call to a member function prepare() on a non-object in C:\apache\www\portal\PDO\create.php on line 19

Compartilhar este post


Link para o post
Compartilhar em outros sites

então tente imprimir com var_dump($conecta) no lugar de print_r().

Compartilhar este post


Link para o post
Compartilhar em outros sites

ESSE também já tentei, não sei se estou fazendo da forma correta.

 

<?php
define('HOST','localhost');
define('DB','dbo_compradamoda');
define('USER','root');
define('PASS','apache');
$conexao = 'mysql:host='.HOST.';dbname='.DB;
try{

$conecta = new PDO($conexao,USER,PASS) ;
echo "<pre>";

print_r($conecta);

$conecta->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);



}catch(PDOexception $error_conecta){

'Erro ao conectar, favor informe no email farias.cs@gmail.com';
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim para ver se algum outro erro é exibido.

 

  }catch(PDOexception $error_conecta){
     echo $erro_conecta;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora deu esse erro.

 

Notice: Undefined variable: erro_conecta in C:\apache\root\portal\PDO\config.php on line 13

Notice: Undefined variable: conecta in C:\apache\root\portal\PDO\create.php on line 19

Fatal error: Call to a member function prepare() on a non-object in C:\apache\root\portal\PDO\create.php on line 19

 

Instalei o WampServer, surgiu mais errros, instalei o xamp, nossa foi um desastre. To usando agora o usbWebserver, mas da no mesmo do appserver

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma melhorada no código e agora deu erro classe PDO não existe.

 

Fatal error: Class 'PDO' not found in C:\Apache\www\portal\PDO\config.php on line 10

Compartilhar este post


Link para o post
Compartilhar em outros sites

habilite o PDO no php.ini e reinicie o apache.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz exatamente como você me falou, mas nada funcionou, nem mudou o erro. Para não abusar de sua ajuda, pesquisei neste tópico algo extremamente semelhante.

 

http://forum.imasters.com.br/topic/339156-instalar-a-pdo/

 

Porém deu no mesmo. Reinstalei o appserver. Por sinal qual o pacote de Servidor você usa? Wamp, Xamp, apachetriad, easyPHP, UsbWebServer, Appserver ou outro?

 

Obrigado pela força, mas não sei mais o que instalar. No wamp ele inseriu os dados, porém apresentou diversos erros. Mudar todos os parametros agora nao sei se seria interessante. É primeira vez que uso PDO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dentro da função use: global $conecta;

 

Sim, é um câncer fazer isso, mas está usando procedural, não tem jeito. E um ponto, se apareceu mais erros: enfrente-os, não esconda, você só está enganando você mesmo jogando lixo debaixo do tapete.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Senhores muito grato, acho que to quase lá. A insersão de alguns dados foram feitas, porem ainda resta esta mensagem.

 

Fatal error: Call to undefined function IsLoggedIn() in

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.