MySQL запрос: date_format и sprintf () - PullRequest
6 голосов
/ 29 апреля 2011

Я хочу использовать 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” 

Plz help

Ответы [ 3 ]

9 голосов
/ 29 апреля 2011

Вы должны экранировать строку формата даты с дополнительными%, попробуйте это:

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"));
0 голосов
/ 29 апреля 2011

В строке 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 входы и что тоже должно работать)

0 голосов
/ 29 апреля 2011

Вам необходимо запустить запрос с помощью mysql_query (), см. http://php.net/manual/en/function.mysql-query.php

...