Solucionado (ver solução)
Solucionado
(ver solução)
12
respostas

Mais uma vez erro ao conectar e inserir no mysql com php

olha amigos mais uma vez pedindo ajuda de vocês pois entendo que não posso avançar enquanto não dominar esse assunto.
Eu busquei um outro método de se conectar ao mysql pelo Google e fazer insert de uma forma mais simples, não que eu queira fazer diferente do curso, 
mas eu preciso dominar mesmo para poder avançar e para mim o código é simples mas nao roda 

#################################################################################

codigo do formulario 

<html>
<body>

<form method ="post" action ="insert-nome.php">

    Nome: <input type ="text" id ="nome" name ="nome"><br/>
    Sobre Nome; <input type ="text" id ="sobrenome" name ="sobrenome"><br/>
    Idade: <input type ="number" id ="idade" name ="idade"><br/>
<input type ="submit" id ="insert" value ="Insert">
</form>


</body>

</html>

#############################################################################

código do método insert-nome.php que já herda a classe conexao 
<?php 
include "conexao_mysql.inc";

$nome                      =$_POST["nome"];
$sobrenome                 =$_POST["sobrenome"];
$idade                     =$_POST["idade"];

$sql ="insert into tb_nome (nome,sobrenome,idade) values ";
$sql .= "('$nome','$sobrenome',$idade)";
$resultado = mysql_query($sql);
echo "Registro inserido com sucesso!";
mysql_close ($conexao);

?>

#################################################################################
e por fim o código da conexão que salvei com o nome conexao_mysql.inc 
<?php
$conexao = mysqli_connect ("localhost","root","");
mysql_select_db("cursophp");

?>

########################################################################################
E aqui o erro apresentado 
Notice: Undefined variable: mysql_select_db in D:\Xampp\htdocs\phpsql\conexao_mysql.inc on line 3

Fatal error: Uncaught Error: Function name must be a string in D:\Xampp\htdocs\phpsql\conexao_mysql.inc:3 Stack trace: #0 D:\Xampp\htdocs\phpsql\insert-nome.php(2): include() #1 {main} thrown in D:\Xampp\htdocs\phpsql\conexao_mysql.inc on line 3


alguém pode me dizer o que ha de errado ?
Existe algo do php ou da mysql que eu precise habilitar ?
Alguém tem um modelo parecido com esse funcional ?
obrigado a todos
12 respostas

Regis,

na linha que você seleciona a base de dados, passa como segundo parâmetro a conexão. Assim:

mysql_select_db("cursophp", $conexao);

Faz um teste aí e dá um retorno.

Nada! Continua com erros,Estou usando o windows 10 e php 7 teria isso haver com alguma incompatibilidade ?

Há necessidade de ser configurar algo no php ?

mensagem de erro

Fatal error: Uncaught Error: Call to undefined function mysql_select_db() in D:\Xampp\htdocs\phpsql\conexao_mysql.inc:3 Stack trace: #0 D:\Xampp\htdocs\phpsql\insert-nome.php(2): include() #1 {main} thrown in D:\Xampp\htdocs\phpsql\conexao_mysql.inc on line 3

Eu criei o mesmo banco de dados em um servidor Ubuntu que tenho aqui e tambem eviei esses arquivos php para lá não ha nenhum erro, porem não esta gravando no banco.

Para você saber se precisa habilitar algo no seu PHP você pode lista o que tem instalado, você pode criar um script com este conteúdo

<?
phpinfo();
?>

Ele vai listar tudo o que você tem instalado e habilitado.

Você pode fazer o seguinte teste para validar se você consegue conectar no seu banco de dados

<?php
    $link = mysql_connect('localhost', 'root', '');
    if (!$link) {
        die('Nao conectou! - ' . mysql_error());
    }
    echo 'Conectou!';
    ?>

No exemplo eu mantive o nome que você informou para o seu servidor (localhost), coloquei o usuário root e a senha em branco.

Regis,

Tenta isso:

arquivo conexao_mysql.inc,

<?php
$conexao = mysqli_connect ("localhost","root","","cursophp");

if(mysqli_connect_errno()){
    echo "falha ao conectar: ". mysqli_connect_error();
    die();
}
?>

no arquivo insert-nome.php,

troca

$sql ="insert into tb_nome (nome,sobrenome,idade) values ";
$sql .= "('$nome','$sobrenome',$idade)";
$resultado = mysql_query($sql);
echo "Registro inserido com sucesso!";
mysql_close ($conexao);

por

$sql ="insert into tb_nome (nome,sobrenome,idade) values  ('{$nome}','{$sobrenome}',{$idade})";
$resultado = mysqli_query($conexao, $sql);
if($resultado)
    echo "inserido com sucesso";
else 
    echo "erro ao inserir";
mysqli_close($conexao);

?>

Eu peguei o seu código e joguei aqui sem alterar nada veja o o que apresentou

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in D:\Xampp\htdocs\phpsql\conectar.php:2 Stack trace: #0 {main} thrown in D:\Xampp\htdocs\phpsql\conectar.php on line 2

Já no servidor linux

A página de 192.168.200.199 não está funcionando

192.168.200.199 não consegue atender a esta solicitação no momento. HTTP ERROR 500

solução!

Amigo seguindo seu código deu tudo certo funcionou , mas me explica o que eu fiz de errado, eu somente vou avançar no curso quando estiver dominando essa parte.

Dar uma olhada nesses links:

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

http://rberaldo.com.br/mysql-obsoleto-php/

Obrigado resolvido

Bom Eu marquei o post como solucionado pois tinha certeza que estava solucionado e não deixou estar, mas ao fazer outros exemplos para praticar, criei outras tabelas como uma tabela moto com os campos id , modelo ,fabricante ,ano deu os mesmos erros mesmo com aquele código que marquei como solucionado. Sai pesquisando na internet e vi em um fórum onde alguém disse insira um registro no seu mysql manualmente e teste seu código, ao fazer isso meu código funcionou perfeitamente. O que seria isso ? um bug do php ? ou falta de uma verificação ? em outros exemplos também foi do mesmo jeito aparece aquele tanto de erros vou no mysql insiro um registro e pronto tudo certo.

posta o código aí

O codigo foi esse que voce me enviou do mesmo jeito funcionou certinho aqui mas depois que havia um registro no banco de dados

insira seu código aqui

//Conexao <?php $conexao = mysqli_connect ("localhost","root","","cursophp");

if(mysqli_connect_errno()){ echo "falha ao conectar: ". mysqli_connect_error(); die(); } ?>

//metodo insert

<?php include "conexao2_mysql.inc";

$nome =$_POST["nome"]; $sobrenome =$_POST["sobrenome"]; $idade =$_POST["idade"];

$sql ="insert into tb_nome (nome,sobrenome,idade) values ('{$nome}','{$sobrenome}',{$idade})"; $resultado = mysqli_query($conexao, $sql); if($resultado) echo "inserido com sucesso"; else echo "erro ao inserir"; mysqli_close($conexao);

?>