sprintf()的含义是什么:参数太少

eni*_*c05 3 php mysql

我有这样的SQL查询

if (isset($_POST['no_peserta_mhs_2015'])) {
$colname_rec_mhs_2015 = $_POST['no_peserta_mhs_2015'];
}
mysql_select_db($database_connect, $connect);
$query_rec_mhs_2015 = sprintf("SELECT * FROM mhs_2015 WHERE no_peserta_mhs_2015 = %s or nama_mhs_2015 like %s ", GetSQLValueString($colname_rec_mhs_2015, "text"));
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误

Warning: sprintf(): Too few arguments in C:\xampp\htdocs\gugus_2015\index.php on line 39 Query was empty
Run Code Online (Sandbox Code Playgroud)

我不知道出了什么问题.

Pau*_*rey 12

字符串中有两个%s项,但字符串后只提供一个参数.对于格式字符串中的每个'%'项,它需要在字符串后面的匹配参数用于在值中查找.

像这样:

sprintf("item 1: %s, item 2: %s", "item1", "item2");
Run Code Online (Sandbox Code Playgroud)

你有什么是:

sprintf("item 1: %s, item 2: %s", "item1");
Run Code Online (Sandbox Code Playgroud)

所以没有条目2字符串匹配的条目

  • 这也意味着你没有转义%.喜欢在:http://stackoverflow.com/questions/3666734/php-sprintf-escaping (3认同)
  • 谢谢@suz,我的问题是转义..而且我不知道你使用了另一个“%”来做到这一点。答案应该更新以包含它。 (2认同)