rickusa 1 Denunciar post Postado Setembro 9, 2013 Ola pessoal. E o seguinte e a primeira vez que estou colocando o site no servidor, ate ai tudo bem, ja bati cabeca bastante, mais nao estou conseguindo fazer a conexao com o Banco, eis o meu PDO de conexao: function conectar(){ try { $pdo = new PDO('mysql:host=dbmedical123.db.11767918.hostedresource.com;dbname=dbmedical123', 'dbmedical123', ''); return $pdo; } catch (PDOException $ex){ echo 'Erro ao Conectar no Servidor, Erro: ' . $ex->getMessage(); } } Depois de demorar muito tempo esta me retornando este erro: Erro ao Conectar no Servidor, Erro: SQLSTATE[HY000] [2002] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. Ja tentei de tudo, com certeza e alguma coisa errada na string de conexao, mais o que sera ? Agradeco a atencao e presteza de todos, pois esta ajuda e muito bem vinda sendo que e o primeiro web site que finalmente estou desenvolvendo aqui nos EUA, depois de muita batalha, um abraco a todos, valew.... Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 9, 2013 Já tentou colocar localhost ou o ip do servidor remoto no host? dbmedical123.db.11767918.hostedresource.com Compartilhar este post Link para o post Compartilhar em outros sites
rickusa 1 Denunciar post Postado Setembro 9, 2013 Obrigado amigo pela ajuda, mais ja tentei colocar, estava lendo um artigo na net, e o mesmo diz que o servidor windows do godaddy.com nao tem suporte ao PDO, somente Linux teria este suporte, sera que isto e verdade ? Se mais alguem tiver uma dica por favor ficarei muiiiiiiiiiiiito grato e assim que eu tiver a solucao vou com certeza postar aqui, um abraco a todos, Ricardo. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Setembro 9, 2013 Eu não sei dizer se a plataforma Windows da GoDaddy suporta PDO, mas por que você não solicita a migração para Linux? O PHP roda com muito melhor desempenho em ambiente Linux, além de ter mais recursos disponíveis. Compartilhar este post Link para o post Compartilhar em outros sites
rickusa 1 Denunciar post Postado Setembro 9, 2013 Amigo obrigado, acabei de converser com o meu cliente e vamos modificar para Linux, vou ter que mudar alguma coisa no codigo ? Eu estou utilizando PHP, JQuery e ajax, na verdade nao trago nada do banco sem usar o $.ajax(). Muiiiiiiiiiiito Obrigado pela sua atencao e presteza amigo. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Setembro 9, 2013 Não vai precisar alterar nada no código não. :) Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Setembro 9, 2013 Tem nada a ver Windows com PDO. No máximo porta no firewall. Mas aí o bloqueio também se daria no formato nativo. Timeout geralmente o problema é endpoint offline. Não conexão recusada, o que discartaria o problema de firewall. Exemplo com o seu próprio caso: $ dig dbmedical123.db.11767918.hostedresource.com ; <<>> DiG 9.9.2-P1 <<>> dbmedical123.db.11767918.hostedresource.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19695 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;dbmedical123.db.11767918.hostedresource.com. IN A ;; ANSWER SECTION: dbmedical123.db.11767918.hostedresource.com. 21600 IN CNAME dbmedical123.db.11767918.fbc.hostedresource.net. dbmedical123.db.11767918.fbc.hostedresource.net. 3600 IN A 68.178.216.75 ;; Query time: 728 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Sep 9 13:46:00 2013 ;; MSG SIZE rcvd: 149 IP final = 68.178.216.75 Quando tentamos uma conexão via porta 80: $ nc -vv 68.178.216.75 80 nc: connect to 68.178.216.75 port 80 (tcp) failed: Connection refused Bastante atenção no retorno: connection refused. Isso indica que, ou não há um servidor web ativo ou o firewall não permite acesso externo a essa porta. Por padrão, a porta de escuta do MySQL é 3306. Novo teste... nc -vv 68.178.216.75 3306 nc: connect to 68.178.216.75 port 3306 (tcp) failed: Connection timed out O que significa que a conexão não foi recusada, como no teste anterior. Mas também não houve resposta. É possível acessar o endpoint por essa porta, mas não tem nenhum processo que possa atender às solicitações. Desde o MySQL 5.5, uma diretiva padrão foi trocada de [inline]skip-networking[/inline] para [inline]bind-address = 127.0.0.1[/inline]. A primeira permitia apenas acesso via sockets. O que é problemático no Windows. A segunda permite acesso pelo protocolo TCP, mas - por padrão - apenas dentro da própria máquina. Pode ser este o problema, ser necessário trocar a diretiva [inline]bind-address[/inline] para atender a qualquer IP mediante o valor [inline]0.0.0.0[/inline] Compartilhar este post Link para o post Compartilhar em outros sites
rickusa 1 Denunciar post Postado Setembro 9, 2013 Uauuuuu, grande ajuda amigo, mais entao nao tem nada a ver o PDO com Windows, certo, mais mesmo assim nao estou conseguindo mostrar os dados na tela, o timeout ainda e o problema, vou tentar mudar o OS para Linux vamos ver como vai ficar, mais se alguem mais tiver uma sujestao fico muito grato, grato tambem pela atencao e presteza do amigo que me respondeu, um abraco. Opa agora o erro que aparece e este: Erro ao Conectar no Servidor, Erro: could not find driver<br /> <b>Fatal error</b>: Call to a member function prepare() on a non-object in <b>D:\Hosting\11767918\html\config\DBConfiguracao.php</b> on line <b>26</b><br /> Este Seria a maneira de conectar sujerida pelo godday.com <?php //Variables for connecting to your database. //These variable values come from your hosting account. $hostname = " dbmedical123.db.11767918.hostedresource.com "; $username = " dbmedical123 "; $dbname = " dbmedical123 "; //These variable values need to be changed by you before deploying $password = "your password"; $usertable = "your_tablename"; $yourfield = "your_field"; //Connecting to your database mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database! Please try again later."); mysql_select_db($dbname); //Fetching from your database table. $query = "SELECT * FROM $usertable"; $result = mysql_query($query); if ($result) { while($row = mysql_fetch_array($result)) { $name = $row["$yourfield"]; echo "Name: $name<br>"; } } ?> Caramba isso e MySQL e na verdade estou usando PDO ????? Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Setembro 9, 2013 Opa agora o erro que aparece e este: Erro ao Conectar no Servidor, Erro: could not find driver<br /> <b>Fatal error</b>: Call to a member function prepare() on a non-object in <b>D:\Hosting\11767918\html\config\DBConfiguracao.php</b> on line <b>26</b><br /> Couldn't find driver quer dizer que o driver MySQL para PDO não está instalado. Você pode obter a lista dos drivers disponíveis com [inline]print_r(PDO::getAvailableDrivers());[/inline] Este Seria a maneira de conectar sujerida pelo godday.com <?php //Variables for connecting to your database. //These variable values come from your hosting account. $hostname = " dbmedical123.db.11767918.hostedresource.com "; $username = " dbmedical123 "; $dbname = " dbmedical123 "; //These variable values need to be changed by you before deploying $password = "your password"; $usertable = "your_tablename"; $yourfield = "your_field"; //Connecting to your database mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database! Please try again later."); mysql_select_db($dbname); //Fetching from your database table. $query = "SELECT * FROM $usertable"; $result = mysql_query($query); if ($result) { while($row = mysql_fetch_array($result)) { $name = $row["$yourfield"]; echo "Name: $name<br>"; } } ?> Caramba isso e MySQL e na verdade estou usando PDO ????? É, na verdade você estava tentando conectar com PDO sim, que é a forma recomendada. Toda vez que você acessa um mysql_qualquer_coisa no manual tem um alerta bem grande vermelho indicando que o uso dessa lib é desencorajado. Compartilhar este post Link para o post Compartilhar em outros sites
rickusa 1 Denunciar post Postado Setembro 10, 2013 E Pessoal a primeira vez e dificil !!!! hehehehe. Consegui resolver o problema, eis as Solucoes: 1 - O Go Daddy sistema Operacional Windows NAO SUPORTA a Biblioteca PDO, tivemos que mudar para Linux 2 - Ao criar o DataBase, existe uma opcao Chamada Direct Access, voce tem que colocar para true ou Yes. 3 - A string de conexao devera ficar assim : $pdo = new PDO('mysql:host=dbmedical123.db.11767918.hostedresource.com;dbname=dbmedical123', 'SeuDataBase', 'SuaSenha'); E Principalmente a Sua Funcao de Pesquisa no Banco de Dados devera ficar assim, claro alguem deve ter uma melhor maneira de implementar isto, mais por agora esta funcionando. /* Funcao para uma Listagem do Tipo Generica, basta informar o Nome da Tabela a ser Pesquisada. */ function listar($tabela){ try{ $pdo = conectar(); $listar = ("SELECT * FROM $tabela"); $prepare = $pdo->prepare($listar); $prepare->execute(); return $prepare->fetchAll(PDO::FETCH_OBJ); } catch (PDOException $e){ echo 'A Error Occur During the Connection Process : ' + $e->getMessage(); } } Pessoal foi dificil mais eu quero mais uma vez agradecer a atencao e presteza de todos, um forte abraco a todos voces colegas ai do Brasil. Compartilhar este post Link para o post Compartilhar em outros sites