2011-04-29 50 views
5

我想在MySQL查詢中使用sprintf()和date_format。Mysql查詢:date_format和sprintf()

下面是查詢:

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幫助

回答

8

你必須逃離日期格式字符串有額外%的,試試這個:

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

你怎麼知道OP要**這些**值逃脫了? – Neal 2011-04-29 18:08:06

+0

謝謝!它正在工作 – user695575 2011-04-29 18:13:21

+1

@Neal DATE_FORMAT格式參數使用%來表示日期類型。 – 2011-04-29 18:34:59

0

在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

或逃避%W,%M等 – 2011-04-29 18:02:26

+0

@馬克貝克,是的,也是 – Neal 2011-04-29 18:03:01