如果(!empty($ _ POST))一直都是TRUE?

时间:2013-11-08 16:15:00

标签: php

尽管经过了数小时的调试,搜索和阅读,但我无法弄清楚为什么下面的代码无效!?为了进行调试,我在代码中放置了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();
      }
    }   
  }
}

1 个答案:

答案 0 :(得分:5)

您正在检查第一个条件中的$_POST['bio'],并将$_POST['bio_name']分配给$bio,这可能是空的,并且未通过第二个条件。


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

 INSERT INTO
     people (first_name, last_name, bio, <LACKING FIELD>)
     VALUES (    ?,          ?,      ?,       NOW()     )