2011-04-29 30 views
5

Quiero usar sprintf() junto con date_format en una consulta MySQL.Consulta de Mysql: date_format y sprintf()

Aquí es consulta:

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")); 

estoy error que conseguía:

“Warning: sprintf() [fun 
ction.sprintf]: Too few arguments. Query was Empty” 

plz ayuda

Respuesta

8

tienes que escapar de la cadena de formato de fecha con EXTRA% 's, intente esto:

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

¿cómo sabes que el OP quiere ** escapes de esos ** valores? – Neal

+0

¡Gracias! Está funcionando – user695575

+1

@Neal DATE_FORMAT format param usa% 's para indicar los tipos de fecha. –

0

En la cadena sprintf tiene:

"SELECT eventid, groupid, title, DATE_FORMAT(dateofevent, '%W, %M %d, %Y'), 
     timeofevent, location, details, presenter, 
     bio FROM events WHERE eventid = %s" 

que tiene 5 entradas, pero sólo se pone en uno (GetSQLValueString($colname_eventeditrs, "int")), puesto en 4 más y que debe ser de oro (o como se dirá más adelante en los comentarios, escapar 4 de las entradas y que también debe trabajo)

+0

o escapar de la W%,% M, etc –

+0

@Mark Baker, eso también – Neal