De som vill bidra får gärna skriva egna testfunktioner på saker som ska testas.
Gör funktionerna enligt följande exempel:
PHP-kod:
function func_insert()
{
global $dbl, $dbName, $tableName, $numIter, $randStrArr;
//Timer Start
$st = microtime();
//Perform test - INSERT
for ($i = 0; $i < $numIter; $i++)
{
mysqli_query($dbl, "INSERT INTO `$dbName`.`$tableName` (`id` ,`testcolumn`)VALUES ($i , '".$randStrArr[$i]['s']."' )");
}
//test end
//Get time and return exec time
return getTime($st);
}
function func_insert_pdo()
{
global $dbh, $dbName, $tableName, $numIter, $randStrArr;
//Prepare test
$insertStmt= $dbh->prepare("INSERT INTO results ( `id` ,`testcolumn` ) VALUES( :id, :teststr)");
//Timer Start
$st = microtime();
//Perform test - INSERT PDO
for ($i = 0; $i < $numIter; $i++) {
$insertStmt->bindParam(':id', $i, PDO::PARAM_INT);
$insertStmt->bindParam(':teststr', $randStrArr[$i]['s'], PDO::PARAM_STR, $randStrArr[$i]['l']);
$insertStmt->execute( );
}
//test end
//Get time and return exec time
return getTime($st);
}
Kommentarer:
$dbl = Databasanslutning med MySQLi -
http://php.net/manual/en/book.mysqli.php
$dbh = Databasanslutning med PDO -
http://php.net/manual/en/book.pdo.php
$dbName = Databasnamn
$tableName = Testtabellnamn
$numIter = Antal iterationer (1000 kommer det nog vara, men vill ha möjligheten att ändra detta)
$randStrArr = En array med slumpade sängar och längden på dessa. Strängarna är siffror samt stora och små bokstäver med en slumpad längd mellan 5 och 15 tecken. Strängens längd finns också med i arrayen om man vill använda den. Antalet är givetvis lika många som antalet iterationer.
Arrayen är på följande form:
PHP-kod:
Array
(
[0] => Array
(
[s] => 49MmVEQpabk
[l] => 11
)
[1] => Array
(
[s] => Mex1IJoruZWVF
[l] => 13
)
[2] => Array
(
[s] => dPvgE8KT3eOGYwR
[l] => 15
)
[3] => Array
(
[s] => TmABc
[l] => 5
)
....
[999] => Array
(
[s] => 2WQvegSDsh
[l] => 10
)
)
Några kommentarer på det upplägget?