<?PHP
header('Content-type: text/plain');
define('DB_CONNECT_STR', 'mysql://annika:nemiTia@localhost/sunstreaker');
require_once('DB.php');
$pearDB = DB::connect(DB_CONNECT_STR);
$pearDB->setFetchMode (DB_FETCHMODE_ASSOC);

function getmicrotime()
    {
    list($usec, $sec) = explode(" ",microtime());
    return ((float)$usec + (float)$sec);
    }

$queryStar = "SELECT *
              FROM nemi_dog
              LIMIT 50";
$queryAll = "SELECT dog_id,
                    dog_show,
                    dog_sex,
                    reg_name,
                    dog_titles,
                    nickname,
                    dog_illustration,
                    dog_gallery,
                    birth_date,
                    mother,
                    father,
                    breeder,
                    owner,
                    weight,
                    height
             FROM nemi_dog
             LIMIT 50";
$querySome = "SELECT dog_id,
                     dog_sex,
                     reg_name,
                     dog_titles,
                     nickname,
                     dog_illustration,
                     dog_gallery,
                     birth_date,
                     mother,
                     father,
                     breeder,
                     owner
              FROM nemi_dog
              LIMIT 50";
/*
echo "100 Iterations\n";
timeQueryPear($queryStar, 'SELECT * ', 100);
timeQuerymySQL($queryStar, 'SELECT * ', 100);
timeQueryPear($queryAll, 'SELECT all columns ', 100);
timeQuerymySQL($queryAll, 'SELECT all columns ', 100);
timeQueryPear($querySome, 'SELECT some columns ', 100);
timeQuerymySQL($querySome, 'SELECT some columns ', 100);
echo "500 Iterations\n";
timeQueryPear($queryStar, 'SELECT * ', 500);
timeQuerymySQL($queryStar, 'SELECT * ', 500);
timeQueryPear($queryAll, 'SELECT all columns ', 500);
timeQuerymySQL($queryAll, 'SELECT all columns ', 500);
timeQueryPear($querySome, 'SELECT some columns ', 500);
timeQuerymySQL($querySome, 'SELECT some columns ', 500);
*/
echo "1000 Iterations\n";
timeQueryPear($queryStar, 'SELECT * ', 1000);
timeQuerymySQL($queryStar, 'SELECT * ', 1000);
timeQueryPear($queryAll, 'SELECT all columns ', 1000);
timeQuerymySQL($queryAll, 'SELECT all columns ', 1000);
timeQueryPear($querySome, 'SELECT some columns ', 1000);
timeQuerymySQL($querySome, 'SELECT some columns ', 1000);

function timeQueryPear($query, $desc, $iter) {
    global $pearDB;

    $time_start = getmicrotime();
    for ($i = 0; $i < $iter; ++$i) {
        $res = $pearDB->getAll($query);
    }
    $time_end = getmicrotime();
    $time = $time_end - $time_start;
    echo 'PEAR::getAll() - '.$desc.': '.number_format($time, 3)." Seconds\n";
}

function timeQuerymySQL($query, $desc, $iter) {
    $time_start = getmicrotime();
    for ($i = 0; $i < $iter; ++$i) {
        $result = mysql_query($query);
        while ($res[] = mysql_fetch_assoc($result));
        unset($res);
    }
    $time_end = getmicrotime();
    $time = $time_end - $time_start;
    echo 'mysql_fetch_assoc() - '.$desc.': '.number_format($time, 3)." Seconds\n";
}



?>
