• 0
Sign in to follow this  
angelmix

Script não conecta banco de dados phpmyadmin

Question

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?

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 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).

 

Share this post


Link to post
Share on other 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.

Edited by angelmix

Share this post


Link to post
Share on other sites
  • 0

Resposta do suporte hoje 29/01/2019 - 15:18hs.

"Sim esta extensão está ativa em todos os servidores, é a extensão padrão do PHP para acesso ao MySQL.

Observar que no teste que fiz em seu site, utilizei funções mysqli()"

 

Share this post


Link to post
Share on other 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

 

Share this post


Link to post
Share on other 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

 

Edited by angelmix

Share this post


Link to post
Share on other 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!

                                     

 

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this