我在嘗試將我已將$標籤命名爲數組的數據輸入展開,然後將該數組插入表tags
。將標籤插入到數據庫中
我有一個類Global_
有兩個功能:post_main()
& post_tags()
。
在upload.php的文件I具有它們一前一後,如:
$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
佈局表是:id
,tag
和pid
- 這是它所連接的文章的ID。
出於某種原因,雖然文章的信息是這個數據沒有被插入到數據庫中。任何想法爲什麼?
嘗試打印**「INSERT INTO'標籤'(tag,pid)VALUES($ tag_array [$ i],$ pid)**並在phpmyadmin上運行 –
這是什麼情況:'for($ i = 0; $ i> = $ tag_count; $ i ++){'它應該是'for($ i = 0; $ i <= $ tag_count; $ i ++){' –
它是否進入循環?爲什麼不參數化$ pid_q = $ db-> prepare(「SE LECT * FROM \'articles \'WHERE \'title \'='$ title'「);'?爲什麼不只是'foreach($ tag_count'? – chris85