tochano Posted April 16, 2013 at 09:45 PM Report #503489 Posted April 16, 2013 at 09:45 PM (edited) 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, Edited April 17, 2013 at 10:30 AM by brunoais titulo melhorado.
JoaoNascimento Posted April 17, 2013 at 12:11 AM Report #503497 Posted April 17, 2013 at 12:11 AM 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'); http://www.joaonascimento.info
HappyHippyHippo Posted April 17, 2013 at 02:14 AM Report #503503 Posted April 17, 2013 at 02:14 AM 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 Portugol Plus
tochano Posted April 17, 2013 at 08:16 AM Author Report #503518 Posted April 17, 2013 at 08:16 AM 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,
HappyHippyHippo Posted April 17, 2013 at 10:19 AM Report #503552 Posted April 17, 2013 at 10:19 AM 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 Portugol Plus
JoaoNascimento Posted April 17, 2013 at 07:37 PM Report #503699 Posted April 17, 2013 at 07:37 PM 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 http://www.joaonascimento.info
HappyHippyHippo Posted April 17, 2013 at 07:48 PM Report #503700 Posted April 17, 2013 at 07:48 PM 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 Portugol Plus
scorch Posted April 17, 2013 at 07:48 PM Report #503701 Posted April 17, 2013 at 07:48 PM @JoaoNascimento, as funções mysql_* são descontinuadas, e em vez delas devem ser usadas as funções mysqli_*. 🙂 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.
JoaoNascimento Posted April 17, 2013 at 08:11 PM Report #503704 Posted April 17, 2013 at 08:11 PM 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 http://www.joaonascimento.info
abolinhas Posted April 17, 2013 at 11:40 PM Report #503730 Posted April 17, 2013 at 11:40 PM (edited) @tochano - Qual é a versão de PHP do teu alojamento ? 5.X ? Edited April 17, 2013 at 11:42 PM by abolinhas
tochano Posted April 18, 2013 at 06:21 PM Author Report #503876 Posted April 18, 2013 at 06:21 PM @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?
HappyHippyHippo Posted April 18, 2013 at 07:41 PM Report #503889 Posted April 18, 2013 at 07:41 PM 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 Portugol Plus
tochano Posted April 18, 2013 at 08:15 PM Author Report #503892 Posted April 18, 2013 at 08:15 PM 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 7Failed to connect to MySQL: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
HappyHippyHippo Posted April 18, 2013 at 08:19 PM Report #503894 Posted April 18, 2013 at 08:19 PM 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 Portugol Plus
abolinhas Posted April 18, 2013 at 09:14 PM Report #503899 Posted April 18, 2013 at 09:14 PM (edited) 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 Edited April 18, 2013 at 09:15 PM by abolinhas
HappyHippyHippo Posted April 18, 2013 at 10:15 PM Report #503915 Posted April 18, 2013 at 10:15 PM 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 Portugol Plus
abolinhas Posted April 19, 2013 at 11:15 AM Report #503964 Posted April 19, 2013 at 11:15 AM Em 19/04/2013 às 00:15, HappyHippyHippo disse: 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).
N3lson Posted April 19, 2013 at 12:54 PM Report #503986 Posted April 19, 2013 at 12:54 PM 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"; } You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.
HappyHippyHippo Posted April 19, 2013 at 01:25 PM Report #503992 Posted April 19, 2013 at 01:25 PM 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 Portugol Plus
N3lson Posted April 19, 2013 at 07:25 PM Report #504087 Posted April 19, 2013 at 07:25 PM a porta é 3306 enganei-me 🙂 You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now