Eu inseri dessa forma var_dump($stmt) ->bind_param('ss', $sobrenome, $cidade);
E ao tentar inserir os valores retorna o mesmo erro, mas ele retorna bool(false) também
É uma hospedagem no 000webhost e o banco é MySql pelo phpMyAdmin
Tem problemas ele não está retornar corretamente, o problema talvez seja na SQL, mas, não posso afirmar, ou aqui $obj_mysqli->prepare você poderia colocar o código inteiro?
<?php
$obj_mysqli = new mysqli("localhost", "id8711273_server", "*******", "server");
if ($obj_mysqli->connect_errno)
{
echo "Ocorreu um erro na conexão com o banco de dados.";
exit;
}
mysqli_set_charset($obj_mysqli, 'utf8');
//Incluímos um código aqui...
$id = -1;
$sobrenome = "";
$cidade = "";
//Validando a existência dos dados
if(isset($_POST["sobrenome"]) && isset($_POST["cidade"]))
{
if(empty($_POST["sobrenome"]))
$erro = "Campo email obrigatório";
else
if(empty($_POST["cidade"]))
$erro = "Campo senha obrigatório";
else
{
//Alterou aqui também.
//Agora, o $id, pode vir com o valor -1, que nos indica novo registro,
//ou, vir com um valor diferente de -1, ou seja,
//o código do registro no banco, que nos indica alteração dos dados.
$id = $_POST["id"];
$sobrenome = $_POST["sobrenome"];
$cidade = $_POST["cidade"];
//Se o id for -1, vamos realizar o cadastro ou alteração dos dados enviados.
if($id == -1)
{
$stmt = $obj_mysqli->prepare("INSERT INTO usuario (sobrenome, cidade) VALUES (?,?)");
//var_dump($stmp) // return false;
$stmt->bind_param('ss', $sobrenome, $cidade);
if(!$stmt->execute())
{
$erro = $stmt->error;
}
}
else
{
$erro = "Número inválido";
}
}
}
?>
Tem meu comentários no código. O que acho estranho é que em teste local na minha máquina pelo Xampp ele funciona normalmente que isso seria um cadastro bem básico de dois campos e quando coloquei online acabou acontecendo isso.
Eu fiz testes no próprio phpMyAdmin tentando adicionar manualmente e consegui, mas não compreendo o que pode causar esse erro ainda se o BD funciona manual.
Foi besteira, no meu local o BD era server e no web ficou id8711273_server, ai eu colocava o usuário e errava o nome. Muito vacilo meu, obrigado pela ajuda.