PHP将多个数组插入MySQL数据库

时间:2014-09-27 20:20:53

标签: php mysql arrays

我使用jQuery添加/删除输入框以添加视频链接并添加到数据库中,如下所示:

<input name="video[]" class="" value="" />
<input name="video[]" class="" value="" />

我检查并过滤空值而不是像我这样插入非空值:

$id = mysql_insert_id();

foreach(array_filter($_POST['video']) as $video_url) {
if (!empty($video_url)) {


$value['video_data'] = serialize((array(
array_filter($_POST['video'])
)));


SQL::insert("INSERT INTO " . NEWS_FILES . " (url, id,type) VALUES (?, ?, ?)", $value['video_data'], $id, "video");
}
}

现在,在数据库中我看到id为两行:

enter image description here

但是,我需要为每个id插入一行。

我该如何解决这个问题?

修改

$id = mysql_insert_id();

3 个答案:

答案 0 :(得分:0)

您是否已将数据库表中的id字段标记为自动增量?

因为根据当前代码,$ id不会在任何地方更新。因此它采用默认值并插入。

我建议在启动foreach循环之前初始化$ id,然后在执行SQL语句后执行增量

SQL::insert("INSERT INTO " . NEWS_FILES . " (url, id,type) VALUES (?, ?, ?)", $value['video_data'], $id, "video");
$i++;

答案 1 :(得分:0)

您必须通过php创建数组值 $ ar = new array(); $ ar [] = null; 您提交表单数据多部分加载 mysqldata插入命令 &#34;将数据插入表db&#34; &#34;对于数字所有行&#34 ;;

答案 2 :(得分:0)

如果你没有id的自动增量,你可以使用

$id = "select max(id) from  " .NEWS_FILES ; // execute sql and get maxid

比你的foreach添加一个顶级$ id ++;