我在管理区域,我有一个表单来创建管理员,用户(MySQL上的唯一ID),名称和密码,表格:
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">Crear Administrador</h3>
</div>
<div class="box-body">
<form role="form" name="crear-admin" id="crear-admin" method="post" action="insertar-admin.php">
<div class="box-body">
<div class="form-group">
<label for="usuario">Usuario</label>
<input type="text" class="form-control" id="usuario" name="usuario" placeholder="Usuario">
</div>
<div class="form-group">
<label for="nombew">Nombre</label>
<input type="text" class="form-control" id="nombew" name="nombre" placeholder="Tu nombre">
</div>
<div class="form-group">
<label for="contraseña">Contraseña</label>
<input type="password" class="form-control" id="contraseña" name="contraseña" placeholder="Contraseña para iniciar sesión">
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<input type="hidden" name="agregar-admin" value="1">
<button type="submit" class="btn btn-primary">Añadir</button>
</div>
</form>
</div>
<!-- /.box-body -->
</div>
我使用 insertar-admin.php 插入db并获取JSON,if语句已插入,respuesta = 'exito'
,如果没有,respuesta = 'error'
,这是第一个问题,当插入到数据库中是正确的,它可以正常工作,但是当没有时,我无法得到其他消息,尝试使用其他选项,affected_rows
,$result = $stmt->execute();
为真或假布尔,但我不能得到假,这是代码:
<?php
if (isset($_POST['agregar-admin'])) {
$nombre = $_POST['nombre'];
$usuario = $_POST['usuario'];
$password = $_POST['contraseña'];
$opciones = array(
'cost' => 12
);
$password_hashed = password_hash($password, PASSWORD_BCRYPT, $opciones);
try {
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
include_once 'funciones/funciones.php';
$stmt = $conn->prepare("INSERT INTO admins (nombre, usuario, password) VALUES (?,?,?)");
$stmt->bind_param("sss", $nombre, $usuario, $password_hashed);
$stmt->execute();
$id_registro = $stmt->insert_id;
if ($id_registro > 0) {
$respuesta = array(
'respuesta' => 'exito',
'id_admin' => $id_registro
);
} else {
$respuesta = array(
'respuesta' => 'error',
);
}
$stmt->close();
$conn->close();
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
}
这会发送到 admin-ajax.js ,使用 SweetAlert2 为用户生成视觉响应,这是代码:
$(document).ready(function() {
$('#crear-admin').on('submit', function(e) {
e.preventDefault();
var datos = $(this).serializeArray();
$.ajax({
type: $(this).attr('method'),
data: datos,
url: $(this).attr('action'),
dataType: 'json',
success: function(data) {
var resultado = data;
if (resultado.respuesta == 'exito') {
swal(
'Correcto!',
'El administrador se creó correctamente!',
'success'
)
} else {
swal(
'Error',
'Hubo un error!',
'error'
)
}
}
})
});
});
正确插入即可,我收到正确的消息并插入,但出现错误时,我什么都没得到,我该如何解决?