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

Script não conecta banco de dados phpmyadmin


angelmix

Pergunta

Olá, amigos!

Sou iniciante em programação, seguindo tutorial criei um banco de dados e uma tabela para inserir somente id (AI); nome; email; created; modified (null). O mesmo não está conectando o banco de dados. O meu site está hospedado em um servidor Linux de empresa privada. O suporte técnico já testou o mesmo com os dados de usuário, senha, banco de dados e inseriu os dados normalmente. A porta padrão é 3306. Eles não dão suporte a scripts, somente ao servidor.  No entanto, com os meus scripts não consegui acessar e gravar os mesmos. Fiz diversas tentativas alterando-os, mas nada ocorreu de novo. Seguem os três scripts conforme abaixo:

Script 1 - nome: cadastrar.php

<!DOCTYPE html>

<html lang="PT-BR">
      <head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
          <title>CADASTRO</title>
            </head>

<body>

      <h1>Cadastrar Associado</h1>
           <form method="POST" action="processa.php">
             <label>Nome:</label>

      <input type="text" name="nome" placeholder="Digite o nome completo" required> <br><br>

      <label>Email:</label>

      <input type="email" name="email" placeholder="Digite o seu email" required> <br><br>

      <input type="submit" value="Cadastrar">

      </form>

</body>
</html>

--->Obs.: Já alterei a extensão para .html e não funcionou também.

Script 2 - nome: conexao.php

<?php 

$servidor = 'localhost';
$usuario = 'nome_do_usuario';
$senha = 'senha';
$dbname = 'nome_do_banco_de_dados';

//Criar conexao

$conn = mysqli_connect ($servidor, $usuario, $senha, $dbname);

?>

--->Obs: Já alterei $servidor para 'localhost:3306' e não funcionou também.

Script 3 - nome: processa.php

<?php

include_once ('conexao.php');

$nome = $_POST ('nome');
$email = $_POST ('email');

$inserir_dados = "INSERT INTO usuarios (name, email, created) VALUE ('$nome', '$email', NOW ())";

$result_inserir_dados = mysqli_query ($conn, $inserir_dados);

?>

--->Obs: O banco de dados e a tabela foram criados com letras minúsculas.

Tutorial seguido: https://www.youtube.com/watch?v=Ns_1rlhyovw 

Por favor, alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

1. troque essas linhas:

2 horas atrás, angelmix disse:

$nome = $_POST ('nome');
$email = $_POST ('email');

por essas:

$nome = $_POST ['nome'];
$email = $_POST ['email'];

2. veja aqui como habilitar mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/
principalmente itens 3, 4 e 5.
retorne com as mensagens, se for o caso.

3. confirme com a hospedagem se eles ativaram a extensão mysqli
(algumas não ativam :-); só a mysql.*  que já foi removida e varias nem aceitam mais).

 

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, com a alteração recomendada, agora está escrevendo na tela do navegador o nome e e-mail digitado no script cadastro.php, mas não está registrando no banco de dados. Vou compilar as mensagens de erro e consultar se está ativa a extensão mysqli e posto aqui.

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

  • 0

Olá, amigos! Seguindo a orientação de vocês inseri os códigos para retornar as mensagens de erros e retornaram as mensagens abaixo: 

Notice: Undefined variable: mysqli in /home/ibemeduca/public_html/conexao.php on line 14

Catchable fatal error: Object of class mysqli could not be converted to string in /home/ibemeduca/public_html/conexao.php on line 14

 

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe amigos as tentativas, mas necessito resolver este problema. Troquei o script para um script padrão de servidor conforme abaixo:

<?php

$host = "localhost";
$usuario = "nome_do_usuario";
$senha = "seha_do_usuario";
$base = "banco_de_dados";

// Create connection

$conn = mysqli_connect($host, $usuario, $senha, $base);

// Check connection

if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
}
 
echo "Connected successfully";
 
$sql = "INSERT INTO usuarios (name, email, created) VALUE ('$nome', '$email', NOW ())";

if (mysqli_query($conn, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>

Retornou o seguinte erro:

Connected successfullyError: INSERT INTO usuarios (name, email, created) VALUE ('', '', NOW ())
FUNCTION banco_de_dados.NOW does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual

 

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

  • 0

#RESOLVIDO!

Consegui resolver o problema e deixo os dois scripts padrões para quem desejar testar o acesso ao banco de dados do seu MySQL. Lembrando que a versão  é mysqli .

Script 1 - Salvo como cadastro.php

<!DOCTYPE html>

<html lang="PT-BR">
    
    <head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
        
        
        <title>CADASTRO</title>
        
    </head>

<body>

      <h1>Cadastrar Associado</h1>
      
     <form method="POST" action="processa.php">
       
      <label>Nome:</label>

      <input type="text" name="nome" placeholder="Digite o nome completo" required> <br><br>

      <label>Email:</label>

      <input type="email" name="email" placeholder="Digite o seu email" required> <br><br>

      <input type="submit" value="Cadastrar">

      </form>

</body>
</html>

Script 2 - Salvo como processa.php

(Este é um script padrão que encontrei no suporte de uma empresa e copiei. No entanto reescrevi e adaptei o mesmo, pois faltavam declarações de funções. Com ele consegui testar 2 colunas com nome e email.)

<?php

//Declaração dos dados constante no servidor

$host = "localhost";
$usuario = "ibemeduc_admin";
$senha = "ibemeduca123";
$base = "ibemeduc_cadastro";

// Criando a conexão com o banco de dados

$conn = mysqli_connect($host, $usuario, $senha, $base);

//Recebendo os dados do script processa.php

$nome = $_POST ['nome'];
$email = $_POST ['email'];

// Checando a conexão com o banco de dados

if (!$conn) {
      die("Conexão falhou: " . mysqli_connect_error());
}
 
echo "Conexão efetuada com sucesso!_";
 
$sql = "INSERT INTO usuarios (nome, email, created) VALUE ('$nome', '$email', NOW())";

if (mysqli_query($conn, $sql)) {
      echo "Novo registro inserido com sucesso!";
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>

Colunas criadas na tabela:

id   nome   email   created (Esta registra a data de criação automaticamente)   modified (Esta classifiquei como NULL)

Obs.: Quando insere-se um nome com acentuação aparece o mesmo deformado por causa da configuração do parâmetro de linguagem. Ainda não sei dizer se é do meu script que necessita determinar isso ou de alguma configuração no banco de dados. Se alguém souber a resposta basta postar aqui e ajudará a todos. Para mim está resolvido o maior problema que era de acessar e registrar dados no banco de dados criado.

Agradeço o apoio recebido no fórum e as orientações. Foram elas que determinaram o rumo para encontrar a solução.

Abraços!

                                     

 

 

 

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...