Ir para conteúdo
Fórum Script Brasil
  • 0

problema com php-mysql...


Scripter

Pergunta

Olá! Meu problema é o seguinte...

Não estou conseguindo criar tabelas com nomes iniciando por números através do php... com phpmyadmin vai, e é php...

onde está o erro?

<?
$login = $_POST["login"];
$senha = $_POST["senha"];
?>
<html>
<head><title>Cadastro de usuário</title>
<link rel=stylesheet href=estilo1.css type=text/css media=all>
</head>
<body>
<center><h1>Cadastro</h1></center><p><br><br><br><br>
<?
$con = mysql_connect("localhost","root","");
if(!$con)
{
echo "<center><font color=#FFFFFF>Não foi possível conectar-se ao servidor...</font></center>";
}
else
{
mysql_select_db("users",$con);
$query="SELECT * FROM usuarios WHERE login = '$login'";
$ok = mysql_query($query,$con);
$tem = mysql_num_rows($ok);
if($tem==0)
{
mysql_select_db("tarefas",$con);
$query="CREATE TABLE $login(id int(3) NOT NULL auto_increment,materia varchar(50),data varchar(10),data_entrega varchar(10),tarefa text(1000),PRIMARY KEY(id))";
mysql_query($query,$con) or die (mysql_error());
mysql_select_db("users",$con);
$query="INSERT INTO usuarios VALUES(null,'$login','$senha')";
mysql_query($query,$con);
echo "<center><font color=#FFFFFF>Cadastro efetuado com sucesso! <a href=index.php>Clique aqui</a> para retornar a pagina principal</font>";
}
else
{
echo "<center><font color=#FFFFFF>Login já existente, <a href=cadastro.html>clique aqui</a>.</font></center>";
}
}
?>

logins normais, começando com letras da certinho...

o mysql_error() retorna o seguinte:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''145'(id int(3) NOT NULL auto_increment,materia varchar(50),data varchar(10),dat' at line 1.

nesse caso só usei 145 bem rapidinho pra testa...

Editado por Scripter
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi, 'Scripter'

O manual do MySQl não restringe o tipo do caracter no nome de uma tabela exceto os caracteres barra e ponto (ver seção 6.1.2. Nomes de Banco de dados, Tabela, Índice, Coluna e Alias do manual do MySQl versão

4.1)

Como você está usando um caracter diferente de alfabético (A a Z) na primeira posição do nome da tabela, sugiro veementemente que você utilize o nome da tabela entre os caracteres de crase. Por exemplo, utilize `145`em vez de 145 que você estava utilizando anteriormente. Ou, melhor, utilize uma letra antes do número, assim: A145.

Se você optar pela crase deverá utilizá-la em todas as menções que fizer a esta tabela (SELECT, INSERT, UPDATE, DELETE, DROP, ALTER, etc.)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...