Jump to content
pemoamsi

[Resolvido] No database selected.

Recommended Posts

pemoamsi

Bom dia,

Mais uma vez preciso de ajuda. Ligo-me pelo servidor ftp para enviar os ficheiros, e lá sei que tenho uma base de dados com o nome xxx_site. Alguém me pode dizer como faço para criar por PHP a tabela no mySQL e depois o que preciso de usar


<?php

$hostname = 'localhost';
$username = 'root';
$password = '12345';
$sql = "CREATE TABLE `sao`.`produto` (`ID_produto` INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, `modelo` VARCHAR(256) NOT NULL, `fabricante` VARCHAR(256) NOT NULL, `caracteristicas` VARCHAR(256) NOT NULL, `servicos` VARCHAR(256) NOT NULL, `energia` INT(1) NOT NULL, `telecom` INT(1) NOT NULL, `pdf` VARCHAR(256) NOT NULL, `img` VARCHAR(256) NOT NULL) ENGINE = InnoDB;";

$table = 'sao';
$db = mysql_connect($hostname, $username, $password)or die(mysql_error());
mysql_select_db($table, $db);


?>

Erro: No database selected

Que estou a fazer mal

Share this post


Link to post
Share on other sites
Manhoso

Boas.

PHP não vejo nada, mas quando te ligas a uma base de dados para fazer o que quer que seja (excepto criar uma bd) convém indicares a base de dados onde vais trabalhar.

Normalmente uma string de ligação minha é deste genero (VB.NET/C#)

server=localhost;port=3306;uid=foo;pwd=bar;database=xxx_site;

Share this post


Link to post
Share on other sites
KTachyon

Estás a criar uma tabela numa base de dados chamada sao. Ou seja, se queres fazer isto para a base de dados xxx_site, precisas de mudar duas linhas:

$sql = "CREATE TABLE `xxx_site`.`produto` ...

e

$table = 'xxx_site';

E chamar a query:

$result = mysql_query($sql);


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
pemoamsi

Consegui, embora tenho sido de outra maneira agradeço a todos pela ajuda.

Consegui inserir as bases de dados, mas os dados que uso para entrar no servidor www.site.com/phpmyadmin : uzz1 : pass123

$hostname = '127.0.0.1';
$username = 'uzz1 ';
$password = 'pass123';
$table = 'silica_site';
$db = mysql_connect($hostname, $username, $password)or die('Não foi possível conectar');
mysql_select_db($table, $db);

basededados.jpg

Mas quando entro no site continua  a aparecer "No database selected."

Estou sem ideias do que se possa passar :S

Share this post


Link to post
Share on other sites
Manhoso

Como disse antes, quando te ligas a um SGBD, convém teres uma bd "seleccionada". Quer isto dizer que precisas de dizer à ligação e ao SGBD qual a base de dados em que vais trabalhar. O MySQL não adivinha :cheesygrin:

Um site que já me safou algumas vezes:ConnectionStrings.com

Share this post


Link to post
Share on other sites
pemoamsi

Não percebi Manhoso, eu selecciono a BD com o mysql_select_db($table, $db) <--- seleciona a $table que é a base de dados de nome sílica, e o db é a conexão (login)

Share this post


Link to post
Share on other sites
Manhoso

Essa função é chamada sempre que o site necessita de dados da base de dados?

Share this post


Link to post
Share on other sites
pemoamsi

Pesquisei como devia por a porta, o unico sitio onde encontrei isso foi no site do php e vou colocar assim:

$hostport = '3306';

e alterei isto:

$db = mysql_connect($hostname . ":" . $hostport, $username, $password)or die('Não foi possível conectar');

isto é chamado sempre que alguma função precisa de alguma das tabelas da base de dados :cheesygrin:

"No database selected."

Share this post


Link to post
Share on other sites
Manhoso

Eu estava a falar da função que mostras-te, que selecciona a BD.

Esta:

mysql_select_db($table, $db);

Share this post


Link to post
Share on other sites
Manhoso

Não.

A função que mencionei no post antes, é sempre chamada em cada ligação?

Melhor, não há forma de por o nome da BD na ligação logo? Entendes?

Share this post


Link to post
Share on other sites
Baderous

Altera o código de modo a imprimires os erros tal como está neste exemplo e posta os erros imprimidos. Já agora esse 'silica_site' não é o nome de uma tabela ao invés de ser o nome da BD?

Share this post


Link to post
Share on other sites
pemoamsi

Bom dia a todos, FINALMENTE

Era mesmo problema das permissões, mas só podia ser resolvido pelo SP (ambiente windows :S)

Obrigado a todos pela ajuda, só hoje responderam e finalmente corrigi o problema... para quem tiver o mesmo problema que eu, que veja primeiro se é Windows, se for, em principio não permite alteração dos acessos por filezila nem cpanel:\

Share this post


Link to post
Share on other sites
pemoamsi

OK.

Estás a usar hosting externo?

Sim, já agora, para quem pesquisar e encontrar isto.. é na Parallels :S

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.