尽管经过了数小时的调试,搜索和阅读,但我无法弄清楚为什么下面的代码无效!?为了进行调试,我在代码中放置了echo '1';
,echo '2';
和echo '3';
,当我运行代码时,屏幕上只有1。而最奇怪的是,如果表格中的字段是空的,我得到1?
我在Youtube上关注了PHP Academy的视频教程,我很确定我编写的代码与视频完全相同。
预先准备一些帮助!
编辑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();
}
}
}
}
答案 0 :(得分:5)
您正在检查第一个条件中的$_POST['bio']
,并将$_POST['bio_name']
分配给$bio
,这可能是空的,并且未通过第二个条件。
此外,您的插入查询似乎错误 - 您要列出3个字段和4个要插入的值。它应具有相同数量的列出字段和值:
INSERT INTO
people (first_name, last_name, bio, <LACKING FIELD>)
VALUES ( ?, ?, ?, NOW() )