Во-первых, кавычки в SQL ограничивают
строки. плейсхолдер - это не строка.
Во-вторых, по умолчанию плейсхолдер с одним и тем же именем работать не будет.
В-третьих, если нужно получить только количество строк, то
его надо сразу запрашивать из датабазы
В-четвертых, все это можно написать в миллион раз короче.
// Если нужно только количество
$query ="SELECT count(*) FROM table WHERE code LIKE ? OR code_description LIKE ?";
$stmt = $db->prepare($query);
$stmt->execute(["%$search%","%$search%"]);
$count = $stmt->fetchColumn();
echo $count;
// Если нужны сами данные
$query ="SELECT * FROM table WHERE code LIKE ? OR code_description LIKE ?";
$stmt = $db->prepare($query);
$stmt->execute(["%$search%","%$search%"]);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);