PDO в codeigniter, не может связывать параметры - PullRequest
0 голосов
/ 24 января 2012

У меня возникла следующая проблема:

Среда PHP, кодовый каркас с PDO.

мой код

public function index(){

        $sql = "SELECT ........ LIMIT ?,?";

        $q = $this->db->prepare($sql);

        $limit = 0;

        $offset = 10;

        $q->execute(array($limit, $offset));           

        $r = $q->fetch();

        var_dump($r);

    }

проблема : в запросе sql нет проблемы, поскольку, если я жестко закодирую любые целые числа (например, 0, 10) в предложении LIMIT; запрос возвращает желаемый результат. Проблема возникает только при связывании параметров .

Показана ошибка при сбросе $ r в приведенном выше коде возвращается bool (false)

Теперь следующий код успешно выполняется,

public function index(){

        $sql = "SELECT ........ LIMIT 0,10";

        $q = $this->db->prepare($sql);           

        $q->execute();           

        $r = $q->fetch();

        var_dump($r);

    }

в чем может быть проблема в первом коде при связывании? Я делаю это неправильно или есть вероятность, что он набирает обороты из-за того, что codeigniter по умолчанию не поддерживает PDO?

1 Ответ

1 голос
/ 27 января 2012

Как советовал, я выкладываю свой собственный ответ.

Вы не можете связать переменные с LIMIT или ORDER по предложению

РЕШЕНИЕ:

Передайте его как переменную в запросе sql (и, возможно, очистите с помощью intval просто для большей безопасности.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...