I suspect that is due to a new version of MySQL which added "row" as a reserved name. Older versions of mysql will not have an issue, nor will any current version of mariadb.
The function getSmiley in Smileys.subs.php (around line 190) looks like this
function getSmiley($id)
{
$db = database();
$request = $db->query('', '
SELECT id_smiley AS id, code, filename, description, hidden AS location, 0 AS is_new, smiley_row AS row
FROM {db_prefix}smileys
WHERE id_smiley = {int:current_smiley}',
array(
'current_smiley' => $id,
)
);
if ($db->num_rows($request) != 1)
throw new Elk_Exception('smiley_not_found');
$current_smiley = $db->fetch_assoc($request);
$db->free_result($request);
return $current_smiley;
}
We are going to drop that "AS row" part then add $current_smiley['row'] = $current_smiley['smiley_row']; just to keep it compatible with other existing functions. When done it will look like this and should work with the latest MySQL
function getSmiley($id)
{
$db = database();
$request = $db->query('', '
SELECT id_smiley AS id, code, filename, description, hidden AS location, 0 AS is_new, smiley_row
FROM {db_prefix}smileys
WHERE id_smiley = {int:current_smiley}',
array(
'current_smiley' => $id,
)
);
if ($db->num_rows($request) != 1)
throw new Elk_Exception('smiley_not_found');
$current_smiley = $db->fetch_assoc($request);
$current_smiley['row'] = $current_smiley['smiley_row'];
$db->free_result($request);
return $current_smiley;
}