質問: $pdo->prepare("INSERT INTO kadai_table (id1) VALUES(?)"); $st->execute($n); } ``` ### 試したこと コード内にすでに記載していますが、var_dump($n);で変数の中身が意図しているものか確認しました。 今回出ているエラーはパラメーターの数があっていないということでしょうか? for文で必要な分の連続した整数を作り出し、その回数だけインサート文を実行すればうまくいくと思ったのですがなぜ上記のようなエラーが出るのでしょうか? ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報 テストのためWindows10に作ったXampp環境で実行しています。 本番ではCentos7に作ったLAMP環境で100万件のデータを投入します。
回答: > > Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 > > > エラーコードは英語ですが、google翻訳にでもかければ大体の意味は取れると思います。 **エラーを読んでコードを修正することが出来なければ、(まともに)プログラムを書くという事自体出来ないと考えた方がいいくらい重要な事です。エラーを読めるようになることは何より重要なプログラミングスキルの一つだと考えます。** 今回のケースでは PDOStatement::execute()の第一引数には配列が与えられることが期待されている。実際に与えられているのは整数値 というようなことが書いてあります。 配列が与えられていないことを確認したら、 PHPマニュアルの該当のページ http://php.net/manual/ja/pdostatement.execute.php で PDOStatement::execute() の使い方を確認し、コードを修正してみてください。