Forum Moderators: coopster
// PM
id (Auto Increment)
ref_id (reference id to pm_data)
subject_id (reference id to pm_subject)
username
sender
folder
status (0 or 1)
postdate
// PM Subject
subject_id (Auto Increment)
hash (UNIQUE, an MD5 of subject)
subject
// PM Data
ref_id (Auto Increment)
hash (UNIQUE, an MD5 of message)
message
// First, insert the SUBJECT
$write_subject = sprintf("INSERT IGNORE INTO pm_subject (hash, subject) VALUES (MD5('%s'), '%s')",
$subject,
$subject);
mysql_query($write_subject);
if (mysql_affected_rows() > 0)
$subject_id = mysql_insert_id();
else {
$select_subject = sprintf("SELECT subject_id FROM pm_subject WHERE hash = MD5('%s') LIMIT 1",
$subject);
list($subject_id) = mysql_fetch_row(mysql_query($select_subject));
}
// Then insert the MESSAGE
$write_message = sprintf("INSERT IGNORE INTO pm_data (hash, message) VALUES (MD5('%s'), '%s')",
$message,
$message);
mysql_query($write_message);
if (mysql_affected_rows() > 0)
$ref_id = mysql_insert_id();
else {
$select_message = sprintf("SELECT ref_id FROM pm_data WHERE hash = MD5('%s') LIMIT 1",
$message);
list($ref_id) = mysql_fetch_row(mysql_query($select_message));
}
// Then insert the PM
$insert_pm = sprintf(<<<EOF
INSERT INTO pm (ref_id, subject_id, username, sender, folder, status, postdate) VALUES
('%s', '%s', '%s', '%s', '%s', '%s', '%s'),
('%s', '%s', '%s', '%s', '%s', '%s', '%s')
EOF
,
// Inbox
$ref_id,
$subject_id,
mysql_real_escape_string($recipient),
mysql_real_escape_string($sender),
'inbox',
'1',
$timestamp
// Sent
$ref_id,
$subject_id,
mysql_real_escape_string($sender),
mysql_real_escape_string($recipient),
'sent',
'0',
$timestamp);
mysql_query($insert_pm); if (mysql_affected_rows() > 0)
$subject_id = mysql_insert_id();
else {
$select_subject = sprintf("SELECT subject_id FROM pm_subject WHERE hash = MD5('%s') LIMIT 1",
$subject);
list($subject_id) = mysql_fetch_row(mysql_query($select_subject));
}
if (mysql_affected_rows() > 0)
$ref_id = mysql_insert_id();
else {
$select_message = sprintf("SELECT ref_id FROM pm_data WHERE hash = MD5('%s') LIMIT 1",
$message);
list($ref_id) = mysql_fetch_row(mysql_query($select_message));
}
$select = sprintf(<<<EOF
SELECT pm_subject.subject_id, pm_data.ref_id FROM pm_subject, pm_data
WHERE
pm_subject.hash = MD5('%s') AND
pm_data.hash = MD5('%s')
LIMIT 1
EOF
,
$subject,
$message);
list($subject_id, $ref_id) = mysql_fetch_row(mysql_query($select));