将标签插入数据库

时间:2015-10-23 04:57:23

标签: php sql arrays for-loop pdo

我试图将我已将$ tag命名为数组的输入爆炸,然后将该数组插入表tags

我有一个课程Global_,有两个功能:post_main()& post_tags()

在upload.php文件中,我一个接一个地使用它们,例如:

$Global_->post_main($_POST['title'], $_POST['subtitle'], $_POST['content'], time(), $_FILES["image-file"]["tmp_name"], $_POST['image-cred'], 
'0', '0', '0', $uid);
$Global_->post_tags($_POST['tags'], $_POST['title']);

在课堂上,post_tags()功能如下:

function post_tags($tags, $title) {
        require "database.php";
        $tag_array = explode(", ", $tags);
        $tag_count = count($tag_array);

        $pid_q = $db->prepare("SELECT * FROM `articles` WHERE `title` = '$title'");
        $pid_q->execute();
        $pid_i = $pid_q->fetch();
        $pid = $pid_i['id'];

        for($i=0;$i < $tag_count;$i++) {
            $t_stmt = $db->prepare("INSERT INTO `tags` (tag, pid) VALUES (:tag, :pid)");
            $t_stmt->bindParam(':tag', $tag_array[$i]);
            $t_stmt->bindParam(':pid', $pid);
            $t_stmt->execute();
        }
    }

tags表格的布局为:idtagpid - 这是其附加的文章的ID。

由于某些原因,该数据未被插入数据库,尽管该文章的信息是。知道为什么吗?

1 个答案:

答案 0 :(得分:1)

由于这个原因,您的插入条件不会被执行(因为$tag_count > 0根据您的问题):

for($i=0;$i >= $tag_count;$i++) { 

应该是

for($i=0;$i < $tag_count;$i++) {