I am doing a login, where first I do the select query to know if a username is already registered in my database, then I do an if ($stmt->num_rows()===0)
if true I insert the username and password but I could not by error Fatal error:
Uncaught Error: Call to a member function bind_param() on bool.
Thanks in advance
PHP
if ($accion === 'crear') {
//Codigo para crear los administradores
//importar la conexion
include '../funciones/conexion.php';
try{
//Realizar la consulta a la base de datos
$stmt =$conexion->prepare('SELECT usuario FROM usuarios
WHERE usuario =?');
$stmt->bind_param('s', $usuario);
$stmt->execute();
if ($stmt->num_rows()===0) {
//Hashear passwords
$opciones = array('cost' => 12);
$hash_password = password_hash($password,
PASSWORD_BCRYPT, $opciones);
$sql=$conexion->prepare("INSERT INTO usuarios (usuario,
password) VALUES (?, ?)");
$sql->bind_param('ss', $usuario , $hash_password);
$sql->execute();
$respuesta = array(
'respuesta' =>'correcto',
);
}
//Si el usuario existe
else {
$respuesta = array(
'respuesta' => 'Usuario Existe');
}
$sql->close();
$stmt->close();
$conexion->close();
}catch(Exception $e){
//En caso de un error, tomar la excepcion
$respuesta = array('pass' =>$e->getMessage() );
}
echo json_encode($respuesta);
}
javascript
function validarRegistro(e){
e.preventDefault();
var usuario = document.querySelector('#usuario').value,
password = document.querySelector('#password').value,
tipo = document.querySelector('#tipo').value;
if (usuario === '' || password === '') {
//la validacion falló
swal({
type: 'error',
title: 'Error!',
text: 'Usuario y/o Password están en blanco'
})
} else {
//Ambos campos son correctos, mandar a ejecutar Ajax
//datos que se envian al servidor
var datos = new FormData();
datos.append('usuario', usuario);
datos.append('password', password);
datos.append('accion', tipo);
// crear el llamado a ajax
var xhr = new XMLHttpRequest();
//abrir la conexion
xhr.open('POST', 'inc/modelos/modelo-admin.php', true);
//retorno de datos
xhr.onload=function(){
if (this.status === 200) {
var respuesta = (JSON.parse(xhr.responseText));
console.log(respuesta);
//Si la respuesta es correcta
if (respuesta.respuesta === 'correcto') {
//Si es un usuario nuevo
if (respuesta.tipo === 'crear') {
swal({
title: 'Usuario Creado',
text: 'El usuario se creó
exitosamente',
type: 'success'
});
}
}else{
//Hubo un error
swal({
title: 'Error',
text: 'Usuario ya existe',
type: 'error'
});
}
}
}
//Enviar la peticion
xhr.send(datos);
}
}