0

尽管进行了数小时的调试、搜索和阅读,我还是不明白为什么下面的代码不起作用!?为了进行调试,我在代码中放置了echo '1';,echo '2';并且echo '3';当我运行代码时我只在屏幕上得到 1 。最奇怪的是我得到1,无论表单中的字段是否为空!?

我在 Youtube 上关注了 PHP Academy 的视频教程,我很确定我编写的代码与视频中的代码完全相同。

YouTube

感谢一些帮助,以便能够继续!

编辑 1:已将 bio_name 更改为 bio

编辑 2:已将 firts_name 更改为 first_name

编辑 3:添加在 SQL 查询中创建

if(!empty($_POST)){
if(isset($_POST['first_name'], $_POST['last_name'], $_POST['bio'])){
    echo '1';
    $first_name = trim($_POST['first_name']);
    $last_name = trim($_POST['last_name']);
    $bio = trim($_POST['bio']);

    if(!empty($first_name) && !empty($last_name) && !empty($bio)){
    echo '2';
    $insert = $db->prepare("INSERT INTO people (firts_name, last_name, bio, created) VALUES (?, ?, ?, NOW())");
    $insert->bind_param('sss', $first_name, $last_name, $bio);

    if($insert->execute()){
        header('Location: index.php');
        echo '3';
        die();
      }
    }   
  }
}
4

1 回答 1

5

您正在检查$_POST['bio']第一个条件并分配$_POST['bio_name']to $bio,这可能是空的并且第二个条件失败。


此外,您的插入查询似乎是错误的 - 您列出了 3 个字段和 4 个要插入的值。它应该具有相同数量的列出的字段和值:

 INSERT INTO
     people (first_name, last_name, bio, <LACKING FIELD>)
     VALUES (    ?,          ?,      ?,       NOW()     )
于 2013-11-08T16:17:06.797 回答