Farias 1 Denunciar post Postado Março 23, 2013 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. <?phpdefine('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
shini 318 Denunciar post Postado Março 23, 2013 de um print_r ou um var_dump em $conecta Compartilhar este post Link para o post Compartilhar em outros sites
Farias 1 Denunciar post Postado Março 23, 2013 shini como eu faria $conecta = print_r new PDO($conexao,USER,PASS);? por gentileza comenta para mim. Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Março 23, 2013 echo "<pre>"; print_r($conecta); Compartilhar este post Link para o post Compartilhar em outros sites
Farias 1 Denunciar post Postado Março 23, 2013 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
shini 318 Denunciar post Postado Março 23, 2013 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
Farias 1 Denunciar post Postado Março 23, 2013 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
shini 318 Denunciar post Postado Março 23, 2013 oq aparece escrito na tela? Compartilhar este post Link para o post Compartilhar em outros sites
Farias 1 Denunciar post Postado Março 24, 2013 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
shini 318 Denunciar post Postado Março 24, 2013 então tente imprimir com var_dump($conecta) no lugar de print_r(). Compartilhar este post Link para o post Compartilhar em outros sites
Farias 1 Denunciar post Postado Março 24, 2013 ESSE também já tentei, não sei se estou fazendo da forma correta. <?phpdefine('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
shini 318 Denunciar post Postado Março 24, 2013 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
Farias 1 Denunciar post Postado Março 24, 2013 Agora deu esse erro. Notice: Undefined variable: erro_conecta in C:\apache\root\portal\PDO\config.php on line 13Notice: Undefined variable: conecta in C:\apache\root\portal\PDO\create.php on line 19Fatal 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
Farias 1 Denunciar post Postado Março 24, 2013 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
shini 318 Denunciar post Postado Março 24, 2013 habilite o PDO no php.ini e reinicie o apache. Compartilhar este post Link para o post Compartilhar em outros sites
Farias 1 Denunciar post Postado Março 24, 2013 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
shini 318 Denunciar post Postado Março 24, 2013 uso o xampp.; Compartilhar este post Link para o post Compartilhar em outros sites
Enrico Pereira 299 Denunciar post Postado Março 24, 2013 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
Farias 1 Denunciar post Postado Março 25, 2013 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