/** * 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; }
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; }