PHP记录未插入MySql博客类别表
我有一个addpost.php,它有一个表单,可以将博客文章提交到mysql数据库中。各表如下: blog\u post\u catsPHP记录未插入MySql博客类别表,php,html,mysql,forms,Php,Html,Mysql,Forms,我有一个addpost.php,它有一个表单,可以将博客文章提交到mysql数据库中。各表如下: blog\u post\u cats +--------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+------------------+------+-----+
+--------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| postID | int(11) | YES | | NULL | |
| catID | int(11) | YES | | NULL | |
+--------+------------------+------+-----+---------+----------------+
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| catID | int(11) unsigned | NO | PRI | NULL | auto_increment |
| catTitle | varchar(255) | YES | | NULL | |
+----------+------------------+------+-----+---------+----------------+
blog\u posts\u seo
+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| postID | int(11) unsigned | NO | PRI | NULL | auto_increment |
| postTitle | varchar(255) | YES | | NULL | |
| postDesc | text | YES | | NULL | |
| postCont | text | YES | | NULL | |
| postDate | datetime | YES | | NULL | |
+-----------+------------------+------+-----+---------+----------------+
blog\u猫
+--------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| postID | int(11) | YES | | NULL | |
| catID | int(11) | YES | | NULL | |
+--------+------------------+------+-----+---------+----------------+
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| catID | int(11) unsigned | NO | PRI | NULL | auto_increment |
| catTitle | varchar(255) | YES | | NULL | |
+----------+------------------+------+-----+---------+----------------+
当用户提交表单时,文章标题、内容、描述将发布到blog_posts_seo表,但所选类别也会将catID和POSTD传递到blog_post_cats表。下面是表单字段的示例。以及通过查询blog_cats表来显示类别名称和复选框的方式:
<form action='' method='post'>
<p><label>Title</label><br />
<input type='text' name='postTitle' value='<?php if(isset($error)){ echo $_POST['postTitle'];}?>'></p>
<p><label>Description</label><br />
<textarea name='postDesc' cols='60' rows='10'><?php if(isset($error)){ echo $_POST['postDesc'];}?></textarea></p>
<p><label>Content</label><br />
<textarea name='postCont' cols='60' rows='10'><?php if(isset($error)){ echo $_POST['postCont'];}?></textarea></p>
<fieldset>
<legend>Categories</legend>
<?php
$stmt2 = $db->query('SELECT catID, catTitle FROM blog_cats ORDER BY catTitle');
while($row2 = $stmt2->fetch()){
if(isset($_POST['catID'])){
if(in_array($row2['catID'], $_POST['catID'])){
$checked="checked='checked' ";
}else{
$checked = null;
}
}
echo "<input type='checkbox' name='catID[]' value='".$row2['catID']."' $checked> ".$row2['catTitle']."<br />";
}
?>
</fieldset>
<p><input type='submit' name='submit' value='Submit'></p>
</form>
实际发生的是,没有任何东西被传递到blog\u post\u cats表!!所以我不确定出了什么问题
我认为insert语句用于将catID和postID插入blog_post_cats表是正确的,因此我怀疑以下内容存在错误:
<fieldset>
<legend>Categories</legend>
<?php
$stmt2 = $db->query('SELECT catID, catTitle FROM blog_cats ORDER BY catTitle');
while($row2 = $stmt2->fetch()){
if(isset($_POST['catID'])){
if(in_array($row2['catID'], $_POST['catID'])){
$checked="checked='checked' ";
}else{
$checked = null;
}
}
echo "<input type='checkbox' name='catID[]' value='".$row2['catID']."' $checked> ".$row2['catTitle']."<br />";
}
?>
</fieldset>
类别
感谢您的帮助。经过多次测试,我发现了为什么catID和postID没有插入
if(isset($_POST['submit'])){
$_POST = array_map( 'stripslashes', $_POST );
//collect form data
extract($_POST);
我的问题中没有包含此代码,我发现如果我注释掉:
/*$_POST = array_map( 'stripslashes', $_POST );
//collect form data
extract($_POST);*/
。。。catID和postID已正确插入数据库
我似乎是在将$\u POST数组的值发送到stripslashes函数,但它阻止了将数据插入数据库