2009-10-25 6 views
2

Cette ligne donne une erreur: "Trop peu d'arguments". Quel est le problème?[PHP]: Erreur -> Trop peu d'arguments dans sprintf();

$InsertQuery = sprintf("INSERT INTO listing (ldate, places, company, designation, projectdetails, desiredcandidate, hrname, hrcontact, email) VALUES (DATE_FORMAT(%s,'%Y %m %d),%s,%s,%s,%s,%s,%s,%s,%s)", $ldate,$places,$company,$designation, htmlentities($projectdetails), htmlentities($desiredcandidate),$hrname,$hrcontact,$email); 

Répondre

6

Eh bien, votre chaîne spécifie 12 espaces réservés et vous ne fournissez que 9 valeurs. La fonction sprintf requiert que vous transmettiez autant de valeurs que le nombre d'espaces réservés que vous spécifiez dans la chaîne de format. Je pense en fait que le message d'erreur est très clair et qu'il s'agit d'un message d'erreur aussi bon que vous le verrez jamais.

+0

Exactement l'erreur est trop claire. Je passe 9 arguments et leur sont 9% s. Pouvez-vous s'il vous plaît effacer où sont 12 placeholders? – RKh

+2

Vous oubliez le '% Y% m% d' - ce sont aussi des espaces réservés. –

+0

Eh bien, au moins '% d' est - je ne suis pas sûr que PHP considère les spécificateurs de type valides'% Y' et '% m'. –

6

Les arguments sont les expressions et doivent correspondre en nombre aux spécificateurs de format%. Si vous avez juste besoin d'un caractère%, utilisez %%.

+0

ça me rendait fou, merci – user2203384

Questions connexes