###前提・実現したいこと
PHPスクリプトを使い連続した数値のデータをMysqlへ追加したいです。
###発生している問題・エラーメッセージ
PHPをブラウザで表示すると、ブラウザでこのようなエラーが出ます
int(1) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 int(2) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 int(3) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 int(4) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 int(5) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 int(6) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 int(7) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 int(8) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 int(9) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12 int(10) Warning: PDOStatement::execute() expects parameter 1 to be array, integer given in C:\xampp\htdocs\mys.php on line 12
###該当のソースコード
コードが正しく機能するか確認するため1から10までの連続したデータを作成しようと下記のコードを作りました
for ($n=1; $n<=10; $n++){ var_dump($n); $st = $pdo->prepare("INSERT INTO kadai_table (id1) VALUES(?)"); $st->execute($n); }
###試したこと
コード内にすでに記載していますが、var_dump($n);で変数の中身が意図しているものか確認しました。
今回出ているエラーはパラメーターの数があっていないということでしょうか?
for文で必要な分の連続した整数を作り出し、その回数だけインサート文を実行すればうまくいくと思ったのですがなぜ上記のようなエラーが出るのでしょうか?
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
テストのためWindows10に作ったXampp環境で実行しています。
本番ではCentos7に作ったLAMP環境で100万件のデータを投入します。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。