1. ホーム
  2. php

[解決済み] sprintf()の意味を教えてください。引数が少なすぎる

2022-02-17 10:23:45

質問

次のような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"));

しかし、このようなエラーが発生します。

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

何が悪いのかわからない。

解決方法は?

文字列の中に2つの%s項目がありますが、文字列の後に提供されるパラメータは1つだけです。フォーマット文字列の各「%」項目に対して、値の検索に使用する文字列の後に一致するパラメータが必要です。

このように

sprintf("item 1: %s, item 2: %s", "item1", "item2");

のようなものです。

sprintf("item 1: %s, item 2: %s", "item1");

ということで、項目2の文字列にマッチする項目はありません。