[PHP]: Ошибка → Слишком мало аргументов в 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);

Ответы

Ответ 1

Ну, ваша строка указывает 12 заполнителей, и вы предоставляете только 9 значений. Функция sprintf требует, чтобы вы передавали столько значений, сколько количества заполнителей, которые вы указываете в строке формата. Я на самом деле думаю, что сообщение об ошибке поразительно ясно и примерно такое же сообщение об ошибке, какое вы когда-либо видели.

Ответ 2

Аргументы - это выражения, и они должны соответствовать числу спецификаторов формата%. Если вам действительно нужен% char, используйте %%.