ぽあ~~

【PHP】SQLSTATE[08P01]: <>: 7 ERROR: bind message supplies XX parameters, but prepared statement "pdo_stmt_00000001" requires XX

PHPで、クエリで更新しようとしていたところ、

以下のエラーが出ました。

SQLSTATE[08P01]: <>: 7 ERROR: bind message supplies 88 parameters, but prepared statement "pdo_stmt_00000001" requires 89

どういうこと?

Google翻訳してみると、こういうことみたいです。

 SQLSTATE [08P01]:<>:7エラー:バインドメッセージは88個のパラメーターを提供しますが、プリペアドステートメント「pdo_stmt_00000001」には89個が必要です

 

  • 原因:

 →バインドの数が足りなかった。(まあ自明)

  • 対策: 

 →上記を修正。

  •  参考:

プログラミング初心者向け「プリペアドステートメントプレースホルダとクエリー」まとめ
https://webukatu.com/wordpress/blog/1638/

 

PDO prepare プリペアドステートメントの使い方
https://bituse.info/php/35#:~:text=%E3%83%97%E3%83%AA%E3%83%9A%E3%82%A2%E3%83%89%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88%E3%81%A8%E3%81%AF%E3%80%81SQL,%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82

 

 

 

 

【HTML】【CSS】本日の覚書(テーブルなど)

🐤テーブルを作るときに参考にしたサイト
・【HTML table】表を作成する基本からレイアウトの方法までを解説
  https://www.sejuku.net/blog/49377


・HTMLのtableでテーブルを作る方法と応用テクニックを解説
  https://webliker.info/02035/


・table要素で作成したテーブルをCSSでデザインする
  https://shu-sait.com/css-table-design/#outline__2_1

 

🐤見出しと横並びにしたい。
・【CSS】見出しの横に「更新日」とか並べて表示したい時の簡単なCSSの書き方
  http://bashalog.c-brains.jp/09/03/09-210351.php

【CSS】セレクタについて。

CSSで使われる「#」「>」「$」などの意味とは?

(この☟ブログをまるまる引用しますが、自分用に見やすいように…

https://kredo.jp/media/css-symbol-meaning/)


🐤「,」(カンマ)
→複数の要素を指定する際に利用するセレクタ
 複数の要素にスタイルを適用したいときに使う。
/*-----なんかこんな感じで-----*/
th,td{
border: 1px solid gray;
background:#dcdcdc;
}
🐤「.」(ドット)
→指定したclass名の要素にスタイルを適用するクラスセレクタ


/*-----↓これCSS-----*/
.あああ{font-weight:bold;}

<!--↓これHTML-->
<label class="あああ">とりのたまご</label>

🐤「#」
→指定したid名の要素にスタイルを適用するIDセレクタ
/*-----↓これCSS-----*/
.あああ{font-weight:bold;}

<!--↓これHTML-->
<label class="あああ">ひよこ</label>

🐤「*」
→すべての要素にスタイルを適用する全称セレクタ
/*-----↓これCSS-----*/
*{color: #2196F3;}

<!--↓これHTML-->
<label class="あああ">とりのたまご</label>
<label class="あああ">ひよこ</label>


→適用する要素の範囲を指定できる。
/*-----↓これCSS-----*/
div *{color: #2196F3;}

<!--↓これHTML-->
<label class="あああ">とりのたまご</label>
<div>
  <label class="あああ">ひよこ</label>
</div>

🐤「>」
→指定した要素の直下にある要素にスタイルを適用する
 子要素にのみスタイルを適用する

🐤「+」
→指定した要素に隣接する要素にスタイルを適用する
 「>」と似ていますが、子要素ではなく「隣接する要素」にのみ適用

🐤「~」
→指定した要素の後にある要素全てに適用する
 「+」よりも適用される範囲が広い

🐤「$」
→要素ではなく属性を指定する際に使用する

 

【エラーへの対処】PDOException: SQLSTATE[HY093]: Invalid parameter number: :

 🐤原因:
今回の場合…SQL実行するときに、バインドする:バインド名
ここに、日本語を書いていたからでした。。
英文字にしたら、直ったよ。


🐤エラーが起こったソースコード


// SQL作成
$query[] = 'select';
$query[] = ' 	社員番号';
$query[] = ' 	社員名';
$query[] = ' from';
$query[] = ' 	社員マスタ';
$query[] = ' where';
$query[] = ' 	社員番号 = :社員番号';

// パラメータセット
$param = NULL;
$param[] = new \DBBind(':社員番号', 99999, \DataType::Integer);★★★

// SQL実行
$records = $this->common->db-> execute($query,$param);			
return $records;


例外が発生しました
PDOException: SQLSTATE[HY093]: Invalid parameter number: :
(+_+)

 

🐤対処:
(誤)

$param[] = new \DBBind(':社員番号', 99999, \DataType::Integer);


(正)

$param[] = new \DBBind(':employeeNumber', 99999, \DataType::Integer);

【PHP】違うクラスにある関数を呼び出したい。

メソッドの内部から、違うクラス内にあるメソッドを呼び出したかったんです…。

疑似変数「$this」を使って…。

getPiyoDataModel.phpの中にある”createPiyoData()”という関数を使いたい。
ちなみに、今回のパスは以下のような感じになっています。

f:id:Cordata:20201207205328p:plain

 

//クラス参照
$this->getPiyoCls = new \piyo\getPiyoData\getPiyoDataModel($this->common);  
// 使用例
$array_piyo = [];
$array_piyo= array_merge($array_piyo, $this->getPiyoCls->createPiyoData());

 

 

🐤ポイント
・$this->○○ = new パス… で定義。
・$this->○○->関数 で使える。
※その関数やが、(createPiyoData)、外部からのアクセス可能にしておかなければならない
privateじゃなくてpublicだよん。

 

 

🐤そもそも…

①パスの書き方

 

②$this(擬似変数)ってなんや
php】$thisとかnewとかなんだそれ!な人向けメモ
https://ameblo.jp/siroikinoko/entry-11068078026.html

 

相対パス絶対パス
・【初心者向け】絶対パス相対パスの違いについて解説
https://proengineer.internous.co.jp/content/columnfeature/5229
・パスの説明(絶対パス相対パス、UNC、URL)
https://desktop.arcgis.com/ja/arcmap/10.3/tools/supplement/pathnames-explained-absolute-relative-unc-and-url.htm#:~:text=Windows%20%E3%81%AE%E8%A1%A8%E8%A8%98%E8%A6%8F%E5%89%87%E3%81%A7%E3%81%AF,%E6%B3%95%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82

 

名前空間
名前空間の概要
https://www.php.net/manual/ja/language.namespaces.rationale.php
名前空間の使用法: 基本編
https://www.php.net/manual/ja/language.namespaces.basics.php
・(その他名前空間についてのPHPリファレンスhttps://www.php.net/manual/ja/language.namespaces.php)
・【PHP超入門】名前空間(namespace・use)について
https://qiita.com/7968/items/1e5c61128fa495358c1f

 

🐤今後の課題…
外部ファイルの読み込み方には以下があったりする
・require
・require_once
・include
・include_once
・autoload
→これは今回の記事とはあんまし?関係ない?よね?
でもまあ一応…
参考:https://qiita.com/nogson/items/db15d6e35433154fce8e