留言上传,后台数据库没有记录

想做一个留言上传,没有别的限制,就是留言不能为空就好了,但是好像if语句嵌套这里出问题了,显示不出来

img

img

从你的描述来看,可能有几个问题:

  1. 如果留言为空,前端没有进行校验,直接发送了空请求,这时后端需要额外判断留言是否为空,为空则提示错误,不为空再插入数据库。
  2. 后端在插入数据库时,由于某些原因插入失败了,这时也需要有提示,告知用户留言失败。
  3. 前端发送请求后,如果长时间没有响应,也需要提示用户请求正在处理中,避免用户重复提交。
    所以,你可以在前端进行如下判断:
js
// 前端校验
if (message.trim() === '') {
  alert('留言不能为空!')
  return
}

// 发送请求
axios.post('/message', { message })
  .then(res => {
    // 成功提示
    alert('留言成功!')
  })
  .catch(err => {
    // 失败提示
    alert('留言失败,请稍后再试!')
  })
在后端可以这样:
php
// 接收请求
$message = $_POST['message'];

// 后端校验
if (empty($message)) {
  die('留言不能为空!');
}

// 数据库插入
$result = mysqli_query($conn, "INSERT INTO messages (message) VALUES ('$message')");

// 判断是否成功
if ($result) {
  die('success'); 
} else {
  die('fail'); 
}

这样在每一步都有相应的提示和判断,可以避免你提到的问题。