2014-08-01 4 views
0

В моей базе данных У меня есть день as int. Чем у меня есть $ diff, который является DateTime.WHERE DateInterval не удалось преобразовать в строку

$diff->format("%d"); 

SELECT * FROM smt WHERE day = $diff 

И даже когда я перед использованием формата, она по-прежнему дает мне это:

Catchable fatal error: Object of class DateInterval could not be converted to string in ...

Спасибо за ваши ответы, я надеюсь, что я не хватает чего-то глупое.

ответ

1

$diff является объектом DateInterval и поэтому не может быть интерполирован или конкатенирован как строка, так как нет строкового представления. Я считаю, что вы пытаетесь интерполировать результат из метода DateInterval format().

Try:

"SELECT * FROM smt WHERE day = " . $diff->format('d'); 

Этот запрос здесь должен быть защищен от SQL инъекций при условии, что $diff всегда DateInterval объект, однако вы должны использовать параметризованные запросы с MySQLi или PDO.

+0

Большое спасибо, вы просто сохранили мое настроение. Отметьте как ответ :) – Someguy

Смежные вопросы