posts and tags have a many-to-many relationship(pretty much like stackoverflow),so the code to do it without an ORM should be:
$dml = "insert into posts(title,body,created) value($title,'{$_POST['post-text']}',now())";
mysql_query($dml,$con);
$pid = mysql_insert_id($con);
//deal with tags
if(isset($_POST['tagnames']))
{
$tags = preg_split('/s+/',trim($_POST['tagnames']));
$list = "('".implode("',1),('", $tags)."',1)";
$dml = "insert into tags(name,count) values $list on duplicate key update count=count+1";
mysql_query($dml,$con);
$list = "('" . implode("','", $tags) . "')";
$dml = "insert into post_tags(pid,tagId) select $pid,id from tags where name in $list";
mysql_query($dml,$con);
}
How to do it with by doctrine?
Suppose that the related classes are already generated from schemas
The difficulty lies in the on duplicate key update
part.
To step further,it can be more difficult to handle when someone is editing the posts
...
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…