Skip to content

Commit

Permalink
[HttpKernel] fixed double-insertion problem for profiling data
Browse files Browse the repository at this point in the history
  • Loading branch information
fabpot committed Jun 30, 2010
1 parent 4d3119e commit 19d3e98
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion src/Symfony/Components/HttpKernel/Profiler/ProfilerStorage.php
Expand Up @@ -66,7 +66,7 @@ protected function read()
{
$db = $this->initDb();
$args = array(':token' => $this->token);
$data = $this->exec($db, 'SELECT data FROM data WHERE token = :token ORDER BY created_at DESC LIMIT 1', $args);
$data = $this->fetch($db, 'SELECT data FROM data WHERE token = :token ORDER BY created_at DESC LIMIT 1', $args);
$this->close($db);
if (isset($data[0]['data'])) {
return unserialize(pack('H*', $data[0]['data']));
Expand Down Expand Up @@ -110,6 +110,24 @@ protected function initDb($readOnly = true)
}

protected function exec($db, $query, array $args = array())
{
$stmt = $db->prepare($query);
if ($db instanceof \SQLite3) {
foreach ($args as $arg => $val) {
$stmt->bindValue($arg, $val, is_int($val) ? \SQLITE3_INTEGER : \SQLITE3_TEXT);
}

$res = $stmt->execute();
$res->finalize();
} else {
foreach ($args as $arg => $val) {
$stmt->bindValue($arg, $val, is_int($val) ? \PDO::PARAM_INT : \PDO::PARAM_STR);
}
$stmt->execute();
}
}

protected function fetch($db, $query, array $args = array())
{
$return = array();
$stmt = $db->prepare($query);
Expand Down

0 comments on commit 19d3e98

Please sign in to comment.