Я пытаюсь сделать выбор, используя 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 \ »
Спасибо.
привязка для ЕДИНСТВЕННЫХ значений. Вы пытаетесь связать несколько значений. Тебе нужно:
... WHERE foo BETWEEN :start AND :end
и два связывающих звонка.
Помните, заполнитель в основном похож на переменную, за исключением того, что БД знает, что эта «переменная» может представлять только одно значение. будет НЕ выберите значение, которое вы передаете, и постарайтесь, чтобы оно соответствовало утверждению, так
foo BETWEEN :thingie
ничем не отличается от
foo BETWEEEN '$var'
что касается количества вводимых значений.
Других решений пока нет …