W jaki sposób moje powiązanie PDO nadal zakłóca moje zapytanie?

Poniżej znajduje się funkcja przeznaczona do obsługi scenariusza wyszukiwania dla klasy niestandardowej.

Już potknąłem się o to, że PDO domyślnie ustawia parametry wiązania jako łańcuchy, powodując konwersję liczb całkowitych>>, nawet jeśli nie jest to właściwe. Jak zobaczysz, poprawiłem to, ręcznie sprawdzając, czy typ jest liczbą całkowitą, a następnie wymusza użycie int w tych przypadkach. Problem polega na tym, że moje rozwiązanie działa tylko dla wartości „początkowej” równej 0 - niczego większego od błędów i nie wiem dlaczego. Jeśli ręcznie ustawię wartości start / count na ich odpowiednie wartości (tj. Zamiast: count używam {$ count}), wszystko działa dobrze, więc wygląda na to, że wiązanie wciąż się psuje.

W jaki sposób? Albo jeśli się mylę ... co jest słuszne?

    /*Query is:  
    SELECT tutor_school.id 
    FROM tutor_school, tutor_states 
    WHERE tutor_states.stateName=:state AND tutor_states.id=tutor_school.state 
    GROUP BY tutor_school.id order by tutor_school.name asc 
    LIMIT :start, :count*/

    $db = Database::get_user_db();
    $statement = $db->prepare($query);
    foreach ($executeArray as $key => $value)
    {
        if (getType($value) == 'integer')
        {
            $statement->bindParam($key, $executeArray[$key], PDO::PARAM_INT);
        }
        else
        {
            $statement->bindParam($key, $value);
        }
    }
    var_dump($executeArray);//count and start are still ints
    if ($statement->execute())
    {
        var_dump($executeArray);//start and count are now strings
        var_dump($statement->errorInfo());
        var_dump($query);
        $values = $statement->fetchAll();
        $return = array();
        foreach ($values as $row)
        {
            $school = School::schoolWithId($row[0]);
            if (!empty($school))
            {
                $return[] = $school;
            }
        }
        return $return;
    }

questionAnswers(1)

yourAnswerToTheQuestion