Привет!
Поставил D7, формирую запрос к БД (mysql)
Получаю ошибку:
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0', '10'' at line 2: SELECT wm.message_id,wm.text, wm.create_date FROM {messages} wm WHERE wm.to_user_id = :user_id ORDER BY wm.message_id DESC LIMIT :from_message, :messages_per_page; Array ( [:user_id] => 1 [:from_message] => 0 [:messages_per_page] => 10 )
Т.е. при формировании запроса, D7 оборачивает мои переменные кавычками, при том что я явно указываю, что они целые - intval()
В одном случае - user_id обернут, это мне нужно, но в двух последующих - from_message и messages_per_page мне этого не нужно. Не хотелось бы прибегать к банальному '..' для подставления нужных переменных в запрос, посему вопрос: как мне добиться того, чтобы при формировании запроса к БД определенным переменных присваивался тип integer а не string?
Комментарии
Я не знаю, как в 7, но в 6 это делается так (выборка)
<?php
db_query
(SELECT field FROM {table}WHERE value = '%s'", 'string'); // %s - string
?>
Или, для числа
<?php
db_query
(SELECT field FROM {table}WHERE value = %d", 1); //%d - integer = 1
?>
надеетесь на телепатов?
volocuga@drupal.org, в 6-ке проблемы не было...
xxandeadxx, я сам медиум
думаю, проще реализовать запрос не через db_query , а собрать с помощью db_select
буду курить в эту сторону...