#php #mysql #printf #date-format
#php #mysql #printf #формат даты
Вопрос:
Я хочу использовать sprintf () вместе с date_format в запросе MySQL.
Вот запрос:
mysql_select_db($database_exdb, $expdb);
$query_eventeditrs = sprintf("SELECT eventid, groupid, title, DATE_FORMAT(dateofevent, '%W, %M %d, %Y'), timeofevent, location, details, presenter, bio FROM events WHERE eventid = %s", GetSQLValueString($colname_eventeditrs, "int"));
Я получаю сообщение об ошибке, которое :
“Warning: sprintf() [fun
ction.sprintf]: Too few arguments. Query was Empty”
Пожалуйста, помогите
Ответ №1:
Вам нужно экранировать строку формата даты дополнительными%, попробуйте это:
sprintf("SELECT eventid, groupid, title,
DATE_FORMAT(dateofevent, '%%W, %%M %%d, %%Y'),
ti meofevent, location, details, presenter, bio
FROM events
WHERE eventid = %s", GetSQLValueString($colname_eventeditrs, "int"));
Комментарии:
1. откуда вы знаете, что OP хочет, чтобы эти значения экранировались?
2. Параметр формата @Neal DATE_FORMAT использует % для обозначения типов дат.
Ответ №2:
На самом деле вам нужно выполнить запрос с помощью mysql_query() см. http://php.net/manual/en/function.mysql-query.php
Комментарии:
1. это не имеет ничего общего с
mysql_query
Ответ №3:
В строке sprintf у вас есть:
"SELECT eventid, groupid, title, DATE_FORMAT(dateofevent, '%W, %M %d, %Y'),
timeofevent, location, details, presenter,
bio FROM events WHERE eventid = %s"
Который имеет 5
входные данные, но вы вводите только один ( GetSQLValueString($colname_eventeditrs, "int")
), вводите еще 4, и вы должны быть золотыми (или, как сказано ниже в комментариях, экранируйте 4 входных данных, и это тоже должно сработать)