获取数据库数据时出现非法字符串偏移警告

What is wrong here:

$items = '';
$st = $db->query("select code from map where pos = 'home01' limit 1");
$res = $st->fetchColumn();  // result: 1-2-3-4
$arr = explode("-", $res);
foreach($arr as $el) {
    $st = $db->query("select fname from banners where fname = " . $el . " limit 1");
    $row = $st->fetchColumn();
    $items .= "<img class='imgr imgr2' data-fname = '" . $row['fname'] . "' src='../banners/" . $row['fname'] . ".jpg' alt='img'>
"; // line 88
}
echo $items;

Warning:
Illegal string offset 'fname' ... on line 88

fetchColumn returns the next column directly, not an array that represents the row:

$fname = $st->fetchColumn();
$items .= "<img class='imgr imgr2' data-fname = '${fname}' src='../banners/${fname}.jpg' alt='img'>
";