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
...