У вас есть два столбца с тем же именем, что и first_nm
, а mysql знает, как их вернуть, и затем возвращать простые «first_nm» для обоих. И тогда PDO должны назначить их членам массива, делая имена полей в виде ключей массива. Существует только один способ:
$row['first_nm'] = first col;
$row['first_nm'] = second col;
Если вы попытаетесь увидеть в строке $ row, сколько записей вы найдете?
Итак, вам либо нужно использовать FETCH_ROW, либо дайте полям разные имена. Это ни mysql, ни PDO, виноваты - это как раз то, как все работает.