Asi como esta puesto hay bocha de posibilidades de porque no anda, y no se puede afirmar que alguna sea la culpable ya que con lo que pones no alcanza.
Por ejemplo:
Código PHP:
Ver original$posts = $db->EscapeString($_POST['set']);
$_POST['set'] es un array pero la funcion EscapeString suele ser para un string no para un array.
$db no esta definida.
no se sabe cuando se ejecuta.
No se sabe donde se carga la variable $site.