function __query($sql) { sql_open(); if (mysql_version() >= 50503) { return query($sql); } else { return query(str_replace('utf8mb4', 'utf8', $sql)); } }
function query($query) { global $pdo, $debug, $config; sql_open(); if ($config['debug']) { $start = microtime(true); $query = $pdo->query($query); if (!$query) { return false; } $time = round((microtime(true) - $start) * 1000, 2) . 'ms'; $debug['sql'][] = array('query' => $query->queryString, 'rows' => $query->rowCount(), 'time' => '~' . $time); return $query; } return $pdo->query($query); }
function query($query) { global $pdo, $debug, $config; $query = preg_replace('/``(' . $config['board_regex'] . ')``/u', '`' . $config['db']['prefix'] . '$1`', $query); sql_open(); if ($config['debug']) { if ($config['debug_explain'] && preg_match('/^(SELECT|INSERT|UPDATE|DELETE) /i', $query)) { $explain = $pdo->query("EXPLAIN {$query}") or error(db_error()); } $start = microtime(true); $query = $pdo->query($query); if (!$query) { return false; } $time = microtime(true) - $start; $debug['sql'][] = array('query' => $query->queryString, 'rows' => $query->rowCount(), 'explain' => isset($explain) ? $explain->fetchAll(PDO::FETCH_ASSOC) : null, 'time' => '~' . round($time * 1000, 2) . 'ms'); $debug['time']['db_queries'] += $time; return $query; } return $pdo->query($query); }
} } $children = array(); foreach ($boards_m as $i => $bb) { $pid = pcntl_fork(); if ($pid == -1) { die('Fork failed?'); } else { if ($pid) { echo "Started PID #{$pid}...\n"; $children[] = $pid; } else { unset($pdo); $i = 0; $total = sizeof($bb); sql_open(); foreach ($bb as $i => $b) { $i++; doboard($b); echo "I'm on board {$i}/{$total}\n"; } break; } } } printf("Complete! Took %g seconds\n", microtime(true) - $start); unset($board); foreach ($children as $child) { pcntl_waitpid($child, $status); unset($children[$child]); }