/* There were zero results. Return null instead of an object without results, to allow for statements
* of the form if($result = $database->CachedQuery()) . */
return null;
}
else
{
/* This was an INSERT query. Return the primary ID of the created row. */
return $last_id;
}
}
}
else
{
/* The query failed. */
$err = $statement->errorInfo();
if($err[0] == "23000")
{
if(starts_with($err[2], "Duplicate entry")) /* There does not seem to be a better way of doing this. */
{
throw new DatabaseDuplicateException("The query failed because one of the keys was not unique: {$err[2]}", 0, null, array('query' => $query, 'parameters' => $parameters));
}
else
{
throw new DatabaseConstraintException("The query violates a database constraint: {$err[2]}", 0, null, array('query' => $query, 'parameters' => $parameters));