/**
 * The function to pass a query to a database link
 *
 * @param string $query    The SQL query to execute
 * @param string $database The database to use for this query
 *                         (Must match the database section name in the conf file)
 * @return resource|false  The PgSQL resource if the query suceeded
 *                          or false on failure
 */
function OA_Dal_Delivery_query($query, $database = 'database')
{
    // Connect to the database if necessary
    $dbName = $database == 'rawDatabase' ? 'RAW_DB_LINK' : 'ADMIN_DB_LINK';
    if (empty($GLOBALS['_MAX'][$dbName])) {
        $GLOBALS['_MAX'][$dbName] = OA_Dal_Delivery_connect($database);
    }
    if (is_resource($GLOBALS['_MAX'][$dbName])) {
        return @pg_query($GLOBALS['_MAX'][$dbName], $query);
    } else {
        return false;
    }
}
/**
 * The function to pass a query to a database link
 *
 * @param string $query    The SQL query to execute
 * @param string $database The database to use for this query
 *                         (Must match the database section name in the conf file)
 * @return resource|false  The PgSQL resource if the query suceeded
 *                          or false on failure
 */
function OA_Dal_Delivery_query($query, $database = 'database')
{
    // Connect to the database if necessary
    $dbName = $database == 'rawDatabase' ? 'RAW_DB_LINK' : 'ADMIN_DB_LINK';
    if (empty($GLOBALS['_MAX'][$dbName])) {
        $GLOBALS['_MAX'][$dbName] = OA_Dal_Delivery_connect($database);
    }
    if (is_resource($GLOBALS['_MAX'][$dbName])) {
        $result = @pg_query($GLOBALS['_MAX'][$dbName], $query);
        if (!$result) {
            OX_Delivery_logMessage('DB query error: ' . pg_last_error($GLOBALS['_MAX'][$dbName]), 4);
            OX_Delivery_logMessage(' - failing query: ' . $query, 5);
        }
        return $result;
    } else {
        return false;
    }
}
/**
 * This function logs the variable data passed in to a tracker impression
 *
 * @param array  $aVariables An array of the variable IDs and values to be logged.
 * @param int    $trackerId The tracker ID.
 * @param int    $serverConvId The associated conversion ID for these values.
 * @param string $serverRawIp The associated server identifier for these values.
 * @return bool True on success, false on failuer.
 */
function Plugin_deliveryLog_oxLogConversion_logConversionVariable_Delivery_logConversionVariable($aVariables, $trackerId, $serverConvId, $serverRawIp, $okToLog = true)
{
    if (!$okToLog) {
        return false;
    }
    // Initiate the connection to the database (before using mysql_real_escape_string)
    OA_Dal_Delivery_connect('rawDatabase');
    $table = $GLOBALS['_MAX']['CONF']['table']['prefix'] . 'data_bkt_a_var';
    if (empty($GLOBALS['_MAX']['NOW'])) {
        $GLOBALS['_MAX']['NOW'] = time();
    }
    $time = $GLOBALS['_MAX']['NOW'];
    $aRows = array();
    foreach ($aVariables as $aVariable) {
        $aRows[] = "(\n                        '" . OX_escapeString($serverConvId) . "',\n                        '" . OX_escapeString($serverRawIp) . "',\n                        '{$aVariable['variable_id']}',\n                        '" . OX_escapeString($aVariable['value']) . "',\n                        '" . gmdate('Y-m-d H:i:s', $time) . "'\n                    )";
    }
    if (empty($aRows)) {
        return;
    }
    $query = "\n        INSERT INTO\n            {$table}\n            (\n                server_conv_id,\n                server_ip,\n                tracker_variable_id,\n                value,\n                date_time\n            )\n        VALUES " . implode(',', $aRows);
    return OA_Dal_Delivery_query($query, 'rawDatabase');
}
/**
 * A function to log conversions.
 *
 * @param integer $trackerId The ID of the tracker for which the conversion is to be logged.
 * @param array $serverRawIp The "raw IP address" value to use for the conversion.
 * @param array $aConversion An array of the conversion details, as returned from the
 *                           MAX_trackerCheckForValidAction() function.
 * @return array An array...
 */
function Plugin_deliveryLog_oxLogConversion_logConversion_Delivery_logConversion($trackerId, $serverRawIp, $aConversion, $okToLog = true)
{
    if (!$okToLog) {
        return false;
    }
    // Initiate the connection to the database (before using mysql_real_escape_string)
    OA_Dal_Delivery_connect('rawDatabase');
    $table = $GLOBALS['_MAX']['CONF']['table']['prefix'] . 'data_bkt_a';
    if (empty($GLOBALS['_MAX']['NOW'])) {
        $GLOBALS['_MAX']['NOW'] = time();
    }
    $time = $GLOBALS['_MAX']['NOW'];
    $aValues = array('server_ip' => $serverRawIp, 'tracker_id' => (int) $trackerId, 'date_time' => gmdate('Y-m-d H:i:s', $time), 'action_date_time' => gmdate('Y-m-d H:i:s', $aConversion['dt']), 'creative_id' => (int) $aConversion['cid'], 'zone_id' => (int) $aConversion['zid'], 'ip_address' => $_SERVER['REMOTE_ADDR'], 'action' => $aConversion['action_type'], 'window' => $aConversion['window'], 'status' => $aConversion['status']);
    // Need to also escape identifier as "window" is reserved since PgSQL 8.4
    $aFields = array_map('OX_escapeIdentifier', array_keys($aValues));
    $aValues = array_map('OX_escapeString', $aValues);
    $query = "\n        INSERT INTO\n            {$table}\n            (" . implode(', ', $aFields) . ")\n        VALUES\n            ('" . implode("', '", $aValues) . "')\n    ";
    $result = OA_Dal_Delivery_query($query, 'rawDatabase');
    if (!$result) {
        return false;
    }
    $aResult = array('server_conv_id' => OA_Dal_Delivery_insertId('rawDatabase', $table, 'server_conv_id'), 'server_raw_ip' => $serverRawIp);
    return $aResult;
}
Exemple #5
0
function OX_bucket_prepareUpdateQuery($tableName, $aQuery, $increment = true, $counter = 'count')
{
    // Initiate the connection to the database (before using mysql_real_escape_string)
    OA_Dal_Delivery_connect('rawDatabase');
    $aQuery = array_map('OX_escapeString', $aQuery);
    if ($increment) {
        $aQuery[$counter] = 1;
    } else {
        $aQuery[$counter] = -1;
    }
    $query = "\n        INSERT INTO {$tableName}\n            (" . implode(', ', array_keys($aQuery)) . ")\n            VALUES ('" . implode("', '", $aQuery) . "')\n    ";
    $query .= " ON DUPLICATE KEY UPDATE {$counter} = {$counter} + {$aQuery[$counter]}";
    return $query;
}