PDO — Получение ошибки при попытке связать значения в МЕЖДУ на MySQL

Я пытаюсь сделать выбор, используя PDO и MySql. У меня есть следующий код:

$this->bind[':created'] = "'" . (new DateTime('First day of this month'))->format('Y-m-d') . "' AND '" . date('Y-m-d') . "'";
$this->where[] = "created  BETWEEM :created";

Как вы можете видеть, я добавляю символ кавычки, заключающий дату MySql документация но PHP избегает его, и я получаю сообщение об ошибке.

«У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с «созданным МЕЖДУ» \ ‘2015-07-01 \’ И \ ‘2015-07-24 \’ »

Итак, как я могу использовать диапазон дат с PDO :: bindValue ()?

Будучи более конкретным, я хочу получить такой результат:

ВЫБРАТЬ * ИЗ таблицы, ГДЕ СОЗДАНО МЕЖДУ ‘2015-07-01’ И ‘2015-07-24’

скорее, чем:

ВЫБРАТЬ * ИЗ таблицы, ГДЕ СОЗДАНО МЕЖДУ ‘\’ 2015-07-01 \ ‘И’ \ 2015-07-24 \ »

Спасибо.

0

Решение

привязка для ЕДИНСТВЕННЫХ значений. Вы пытаетесь связать несколько значений. Тебе нужно:

... WHERE foo BETWEEN :start AND :end

и два связывающих звонка.

Помните, заполнитель в основном похож на переменную, за исключением того, что БД знает, что эта «переменная» может представлять только одно значение. будет НЕ выберите значение, которое вы передаете, и постарайтесь, чтобы оно соответствовало утверждению, так

foo BETWEEN :thingie

ничем не отличается от

foo BETWEEEN '$var'

что касается количества вводимых значений.

4

Другие решения

Других решений пока нет …