Session variables can be changed from outside, so yes that's a risk. There's several ways to overcome this risk, on thing is that you can use prepared statements which is recommended. Or you could use filter_var
to sort out potential threads, but definitely prepared statements is recommended.
Example of prepared statements. Not tested but should be fine.
<?php
$dataFromDb = array();
$conn = new mysqli('HOST', 'USER', 'PASS', 'DATABASE');
$query = "SELECT x FROM y WHERE z = ?";
if ($stmt = $conn->prepare($query)) {
$stmt->bind_param('s', $_SESSION['username']);
$stmt->execute();
$result = $stmt->get_result();
while ($results = $result->fetch_array(MYSQLI_ASSOC)) {
$dataFromDb[] = $results;
}
}