Takto NE!
J0hny zhlavy napsal řešení pouze skoro dobře hlavní chyba je v těchto dvou řádcích
<?php
   // nastavime promenou z formulare - neznam typ tvoji databaze, takze pro escapovani predpokladam mySql
   $term = mysql_real_escape_string($_POST['search_term']);
   // ziskame vysledek z db
   $result = $pdo->query("SELECT * FROM tabulka WHERE sloupec LIKE '%" . $term . "%'")->fetchAll();
Špatné je používání mysql_ funkcí obecně, za a je to pouze pro mysql, a za bé občas nevracejí ideální výsledky. Navíc se míchají dvě různé databázové knihovny.
Srávně se to řeší pomocí prepared statement, takto: 
<?php
   // připraví se dotaz
   $prepared= $pdo->prepare('SELECT * FROM table WHERE column LIKE :searchTerm');->fetchAll();
   // provede se dotaz
   $executed = $prepared->execute(array(':searchTerm' => '%'.$_POST['search_term'].'%'));
   // zisk výsledků
   $result = $executed->fetchAll();
Takto předávané parametry PDO ošetří samo (buď posláním jako parametry pro prepared statement, nebo z důvodů zpětné kompaktibility použitím escape funkce).
Používat tento způsob je tedy stejně bezpečný, navíc bývá rychlejší, databáze si prepared statement optimalizuje.