You could avoid SQL altogether and use the XML-RPC API. This would also let you post to remote wordpress installs too.
( note if XML-RPC is not an option, scroll further down )
If Using XML-RPC
Here’s some code from a quick google search using XML-RPC to post to a remote WordPress blog:
http://en.forums.wordpress.com/topic/great-code-for-remote-posting?replies=5
Here’s a simpler set of examples with an explanation of the XML-RPC APIs
And here’s an example from WP-Recipes using Curl and XML-RPC:
http://www.wprecipes.com/post-on-your-wordpress-blog-using-php
function wpPostXMLRPC($title,$body,$rpcurl,$username,$password,$category,$keywords="",$encoding='UTF-8') {
$title = htmlentities($title,ENT_NOQUOTES,$encoding);
$keywords = htmlentities($keywords,ENT_NOQUOTES,$encoding);
$content = array(
'title'=>$title,
'description'=>$body,
'mt_allow_comments'=>0, // 1 to allow comments
'mt_allow_pings'=>0, // 1 to allow trackbacks
'post_type'=>'post',
'mt_keywords'=>$keywords,
'categories'=>array($category)
);
$params = array(0,$username,$password,$content,true);
$request = xmlrpc_encode_request('metaWeblog.newPost',$params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_URL, $rpcurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
$results = curl_exec($ch);
curl_close($ch);
return $results;
?>
If afterall that XML-RPC is not for you
Perhaps a wordpress multisite might be best for you? Creating the new post would be as simple as calling switch_to_blog($blog_id);
then doing your business creating the new post, before calling restore_current_blog();
If you MUST use SQL
Use this question linked to by mike23 in order to gain access via a wpdb object