Der richtige Weg, dies zu tun, ist A:Escapezeichen für all diese $_POST-Superglobals.
und B. Schreiben Sie eine Abfrage wie unten gezeigt.
Hier ist die Tabellendefinition für wp_postmeta:
http://codex.wordpress.org/Database_Description #Table:_wp_postmeta
Da meta_id ein auto_increment-Primärschlüssel ist, Sie stellen Sie es nicht bereit, MySQL tut es.
//$meta_id = mysql_real_escape_string($_POST['meta_id']); <<-- not needed.
$post_id = mysql_real_escape_string($_POST['post_id']);
$meta_key = mysql_real_escape_string($_POST['meta_key']);
$meta_value = mysql_real_escape_string($_POST['meta_value']);
$sql=" INSERT INTO wp_postmeta
(post_id, meta_key, meta_value)
VALUES
('$post_id','$meta_key','$meta_value') "; //<<-- don't forget the quotes!
if ($result = mysql_query($sql)) {
//You can get the new meta_id using:
$new_meta_id = mysql_insert_id($result);
} else {
die ("could not insert ".mysql_error());
}