仮想通貨ブログに専念するため、たまーに更新します!仮想通貨ブログはこちら!

【PHP】「7 number of parameters must be between 0 and 65535」解決方法!

  • URLをコピーしました!
悩んでいる男の子

「7 number of parameters must be between 0 and 65535」エラーが出るんだけど、解決方法が分からないから教えてほしいな。。

こんな悩みを解決します。

  • 本記事の内容
  • 「7 number of parameters must be between 0 and 65535」エラーとは?
  • 「7 number of parameters must be between 0 and 65535」エラー解決方法
  • 本記事の執筆者
いずみん(@izumin_0401)

今回は、「7 number of parameters must be between 0 and 65535」エラーについて解説します。

いずみん

すぐ読み終わるので、是非最後まで読んでみてください!

プログラミングを学びたい方必見!

オンライン特化のプログラミングスクールなら「」が超おススメ!

副業としてプログラミングを学びたい方にもおすすめのスクールです!

  • 初心者が9割以上なので挫折せずに学べる!
  • 受講者に副業の仕事を1案件以上斡旋! ※条件あり
  • オンライン完結型なので、在宅でもお仕事可!
  • プロのメンターがサポートしてくれる!

キャリアカウンセリングメンター相談無料でできるのもおすすめポイントです!

目次

「7 number of parameters must be between 0 and 65535」エラーとは?

「7 number of parameters must be between 0 and 65535」エラーは、パラメータの数が多すぎる場合に発生します

例えば、SQLのINSERT文で一括登録する場合等ですね。

[2019-10-09 15:52:08] local.ERROR: SQLSTATE[HY000]: General error: 7 number of parameters must be between 0 and 65535 (SQL: ...

解消方法は?

PDOは一度に処理できるクエリパラメータが「65535」までです。

つまり、65535以下にしてあげればOKです。

ということで、一括登録していたものを分割します。

chunked_new_record_array = array_chunk($new_record_array, 65000, true);

foreach ($chunked_new_record_array as $new_record_chunk)
{
    //do PDO insertion
}

実は配列の分割だけではダメ

上記の対応を行ったのですが、エラーは解消されませんでした。

実は、INSERT文のクエリパラメータは、配列で1ではなく一つ一つのパラメータを1と数えます

つまり、「VALUES(‘a’, ‘b’, ‘c’)」の場合、パラメータは「1」ではなく「3」になります。

パラメータの数は計算するしかない

パラメータの数はSQLによって異なります。

つまり、それぞれのSQLで分割する基準(数値)は変わってきます

まとめ

今回は、 「7 number of parameters must be between 0 and 65535」エラーについて解説しました。

結構ハマりました。。

ではまた!

まとめ
  • 「7 number of parameters must be between 0 and 65535」エラーは、パラメータの数が多すぎる場合に発生する。
  • 「7 number of parameters must be between 0 and 65535」エラーは、一括登録を分割することで解消できる。
  • 自由な生き方がしたいなら!

自由な生き方をするためには、稼ぐスキルを身に付けなければなりません。

当サイト「リバトレ」では稼ぐスキルに関する情報を日々発信しているので、興味のあるものから見て頂ければ嬉しいです。

稼ぐスキルを身に付けよう!!
SNSもフォローしてね!

この記事が気に入ったら
いいね または フォローしてね!

シェアするんやで!
  • URLをコピーしました!
  • URLをコピーしました!
目次