Ir para o conteúdo
tochano

[Resolvido] Ajuda a conseguir fazer código para ligar a DB MySQL

Mensagens Recomendadas

tochano

Boa noite,

Estou a dar os primeiros passos em programação PHP, desde já quero agradecer toda a ajuda que me possa vir a ser dada.

Pretendo criar uma página em PHP num alojamento web que tenha acesso a uma base de dados.

Escolhi a Awardsapce como alojamento da página + base de dados.

Depois de ver muitos tutoriais em video e artigos escritos a explicar todos os passos necessários para construir uma página e a ligação a uma base de dados, todos os que vi, partem do pressuposto que estamos a usar um servidor alojado no nosso computador.

O meu problema está em como fazer a conexão do à base de dados, pois não consigo adaptar as dicas dos tutoriais num servidor do PC para os dados fornecidos pela Awardspace.

Espero conseguir fazer-me entender e mais uma vez quero agradecer todas as dicas.

Cumprimentos,

Editado por brunoais
titulo melhorado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoaoNascimento

Confesso que já cá não vinha há algum tempo!

Normalmente os provedores de serviço de alojamento tem o servidor de BD no mesmo que o site por isso podes manter a maioria das configurações. Apenas tens de mudar o login e a password para as que te forneceram no serviço.

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

pois, mas a informação que disponibilizaste, é insuficiente :

- que biblioteca usas para fazer a ligação

- código que tens de acesso à base de dados (não interessa os dados de autenticação, somente o código)

- se estás realmente a usar um serviço online ou um servidor local

-

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

além de não fazeres ideia do que ele usa (PDO, mysqli_*, mysql_*, AdoDB, etc, etc ...), respondes com um código que não deve ser usado (mysql_*)?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tochano

O código que tenho para fazer conectar à base de dados é igual ao que o membro JoaoNascimento me facultou mas não funciona...

Gostaria de conseguir responder acertivamente às questões que o membro HappyHippyHippo colocou mas como estou a iniciar e dada a minha familiarização com esta linguagem...

O que vou sei dizer, se é que ajuda em alguma coisa, escolhi o serviço da Awardspace e para criar a base de dados eles disponibilizao a aplicação phpmyadmin 3, pelo que não sei qual a biblioteca certa que deva usar.

Agradeço mais uma vez toda a ajuda que me possa ser dada e obrigado pela compreensão.

Cumprimentos,

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

pois, mas a informação que disponibilizaste, é insuficiente :

...

- código que tens de acesso à base de dados (não interessa os dados de autenticação, somente o código)

...


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoaoNascimento

além de não fazeres ideia do que ele usa (PDO, mysqli_*, mysql_*, AdoDB, etc, etc ...), respondes com um código que não deve ser usado (mysql_*)?

secalhar sim precipitei-me!

Mas já agora podias dizer o porque de não dever ser usado o mysql???

Cumprimentos,

João Nascimento

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Mas já agora podias dizer o porque de não dever ser usado o mysql???

http://www.php.net/manual/en/function.mysql-connect.php ... (assim como em todas as funções mysql_*)

Warning

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

mysqli_connect()

PDO::__construct()


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scorch

@JoaoNascimento, as funções mysql_* são descontinuadas, e em vez delas devem ser usadas as funções mysqli_*. :)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoaoNascimento

http://www.php.net/manual/en/function.mysql-connect.php ... (assim como em todas as funções mysql_*)

@JoaoNascimento, as funções mysql_* são descontinuadas, e em vez delas devem ser usadas as funções mysqli_*. :)

Obrigado aos dois, não sabia mesmo.

Ainda usava as funções mysql_* mas vou tentar migrar o quanto antes para esta nova abordagem

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tochano

@tochano - Qual é a versão de PHP do teu alojamento ? 5.X ?

A versão PHP do alojamento é 5.3.22.

Abaixo deixo a informação acerca da base de dados disponibilizado pela Awardspace:

Database Host: fdb5.awardspace.com

Database Port: 3306

Database Name: 1363569_c67d

Database User: 1363569_c67d

Database Password: ****

Versão da Base de Dados: 5.1

http://www.php.net/manual/en/function.mysql-connect.php ... (assim como em todas as funções mysql_*)

Obrigado pela contribuição.

Até agora ainda não consegui conectar à base de dados.... será pela minha conta ser free?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

testa e seguinte código:

$conn = mysqli_connect("localhost","1363569_c67d",$password,"1363569_c67d");

if (mysqli_connect_errno($conn))
{
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
   echo "Connection was OK!\n";
}


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tochano

testa e seguinte código:

$conn = mysqli_connect("localhost","1363569_c67d",$password,"1363569_c67d");

if (mysqli_connect_errno($conn))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
echo "Connection was OK!\n";
}

Também não deu, vou colar o código em baixo para que possam detectar algum erro;

<html>
<title>Teste!!</title>
<body>
<?php

$conn = mysqli_connect("localhost","1363569_c67d","1234567890","1363569_c67d");

if (mysqli_connect_errno($conn))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
echo "Connection was OK!\n";
}
?>
</body>
</html>

Obrigado pela ajuda

Na página o erro que aparece é o seguinte:

Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2002): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in/srv/disk6/1365826/www/xpto12345.atwebpages.com/index.html on line 7

Failed to connect to MySQL: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

ok, então não deverás ter o servidor MySQL na mesma máquina que o servidor HTTP

testa o seguinte:

$conn = mysqli_connect("fdb5.awardspace.com","1363569_c67d",$password,"1363569_c67d");

if (mysqli_connect_errno($conn))
{
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
       echo "Connection was OK!\n";
}


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
abolinhas

Tens a extensão mysqli ativada no php.ini?

Verifica se não tem um ponto e virgula ( ; ) a frente da extensão

Exemplo

;extension=php_mysqli.dll //desativada

extension=php_mysqli.dll //ativada

Editado por abolinhas

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Tens a extensão mysqli ativada no php.ini?

Verifica se não tem um ponto e virgula ( ; ) a frente da extensão

Exemplo

;extension=php_mysqli.dll //desativada

extension=php_mysqli.dll //ativada

o erro foi de ligação e não de falta da função, logo o erro não se encontra aí


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
abolinhas

o erro foi de ligação e não de falta da função, logo o erro não se encontra aí

Tens toda a razão.

@tochano - Encontrei isto no FAQ da awardspace

Database Management

  • How can I connect to my MySQL/PostgreSQL database? What settings should I use for my script/software?
    MySQL/PosgreSQL database connection can be established with script/software hosted only on your web hosting account (meaning no remote access is allowed due to security reasons). The following settings are needed:
    • DB Host: See your MySQL/PostgreSQL Manager section under DB Host column.
    • DB Port: 3306(for MySQL) / 5432(for PostgreSQL)
    • DB Name: The database name you have assigned, listed inside MySQL/PostgreSQL Manager section of your control panel.
    • DB Username: The database username you have assigned, listed inside MySQL/PostgreSQL Manager section of your control panel.
    • DB Password: The database password you have assigned.

    [*]How can I access my database online?

    [*]I can't establish MySQL connection and get this error: "Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) ?

    Due to security reasons on the shared hosting we do not allow database socket connections, please use MySQL settings to establish connection (please refer to previous help question).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
N3lson

Tenta colocar a porta, usa o código do HappyHippo

$conn = mysqli_connect("fdb5.awardspace.com:3036","1363569_c67d","1363569_c67d","1363569_c67d");

if (mysqli_connect_errno($conn))
{
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
   echo "Connection was OK!\n";
}

Editado por Rui Carlos
Formatação do código.

You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Tenta colocar a porta, usa o código do HappyHippo

$conn = mysqli_connect("fdb5.awardspace.com:3036","1363569_c67d","1363569_c67d","1363569_c67d");

if (mysqli_connect_errno($conn))
{
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
   echo "Connection was OK!\n";
}

a porta é 3306


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

marcas este como resolvido e crias um novo onde a mensagem de erro é exactamente o apresentado aqui : falta de ligação ao servidor

... devo estar a ficar muito velho para estas coisas ...


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tochano

marcas este como resolvido e crias um novo onde a mensagem de erro é exactamente o apresentado aqui : falta de ligação ao servidor

... devo estar a ficar muito velho para estas coisas ...

Abri um tópico novo porque no meu entender, verificar se uma tabela existe não tem nada a ver com a dificuldade que tinha que era conectar ao servidor... e geralmente não é costume colocar outras duvidas fora da duvida inicial.

Além disso, como diz, o erro é o mesmo mas como estou a iniciar ainda estou um pouco à nora com as dificuldades que me vão surgindo e não fui capaz de perceber que o erro era o mesmo.

Mais o informo que com a ajuda que obtive, consegui efectuar a ligação ao servidor, consigo inclusive criar tabelas e inserir linhas dentro das tabelas que crio.... Apenas quando tento verificar se determinada tabela existe, através do código que me foi sugerido é que me aparece o erro tal e qual como o colei ....

Ora se consigo criar tabelas, criar linhas dentro da tabela, suponho que tenho a ligação ao servidor bem configurada.

Agradeço a sua compreensão e mais uma vez, obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

então se já sabes como resolver a ligação ao teu servidor MySQL (algo que afirmas neste tópico) basta aplicar ao tópico criado ...


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tochano

Como pode verificar no erro abaixo, não tem a ver com erro na licação ao servidor.

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /srv/disk6/1365826/www/xpto12345.atwebpages.com/index.php on line 17

Mas isto digo eu que estou a tentar aprender com quem sabe bem mais que eu.

Grato pela atenção.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.