「フレームワークを使わないバニラなPHP」で開発する場合、DBから取得したデータをどう扱うか? FETCH_ASSOC で連想配列として回すと楽に思えるが、「クラス(オブジェクト)」 に流し込むと、コードの見通しが良くなる。 1. フェッチモード(データの受け取り方) PDOでデータを取得する際、fetch() や fetchAll() の引数に指定する「モード」によって、返ってくるデータの形が変…Continue reading 【PHP】PDOのFETCH_CLASSを使って「モデル」っぽくDBを扱う方法
タグ: sql
Laravelセッション管理とDB操作(Eloquent vs クエリビルダ)の実務的な使い分けまとめ
Laravelでの開発において、セッション管理の仕組みや、データベース操作における「Eloquent(ORM)」と「クエリビルダ」の使い分けは非常に重要です。実務レベルで押さえておくべきポイントを整理しました。 1. Laravelのセッション管理 Laravelは、設定一つで保存先を切り替えられる柔軟な設計になっています。 主要なドライバー 実務でのポイント 実務では、パフォーマンス向上のために…Continue reading Laravelセッション管理とDB操作(Eloquent vs クエリビルダ)の実務的な使い分けまとめ
SQL Server インメモリデータベースを使う
メモ begginTransaction()をつけるとインサートやアップデートで失敗する CREATEテーブルは遅いが、大量データのUPDATEやSELECTは早い 主な特徴・ポイント 1. メモリ最適化テーブル(Memory-Optimized Tables)
SQLの実行 PDOオブジェクト、PDO Statementオブジェクト
PDOオブジェクト データベースに接続するためのオブジェクトであり、query関数を使うことでクエリを実行し、PDO Statementオブジェクトを取得できる。 プレースホルダーを使用したクエリを実行するには、PDOオブジェクトを使用してPDOStatementオブジェクトを取得し、その後、それを使用してクエリを実行する。 以下例 PDO Statementオブジェクト PHPからSQLを実行す…Continue reading SQLの実行 PDOオブジェクト、PDO Statementオブジェクト
SQL nullと文字列の比較
nullとの比較 SQLであるカラムと文字列を比較したとき、そのカラムがNullだと条件に当てはまらなくなる。 以上のような場合、CLMがNullだと当てはまらないのは当然だが、 以下はどうだろう? ‘a’ という文字列以外のなので、CLMがNullの行も取得できそうな気がする。 しかし、取得できない。 CLMがNullの場合、比較されないので、行は取得できない。 ISNU…Continue reading SQL nullと文字列の比較
SQL Server 複数の値をバインドするとき
PDOException: SQLSTATE[IMSSP]: Tried to bind parameter number 65536. SQL Server supports a maximum of 2100 parameters 何もせずにただbindValueを使って実行すると上記のエラーが出たり、訳が分からなかった。 解決方法 SQL serverにてプレースホルダー(名前付きバインドパ…Continue reading SQL Server 複数の値をバインドするとき
SQL Server サブクエリを使ったInsert
カラムの数は合わせる必要がある。 テーブル作成時にInsert 番号を順番に振ってアップデート すでにあるテーブルのデータのとあるカラムに上から順番に番号を振りたいとき まず順番に番号を振ったテーブルを作る このとき、アップデートしたいテーブルの何か一意のデータが必要。 方法はいろいろあるが、numberカラムにidentityをつける。 テーブルを右クリック、IDENTITY設定を「はい」にする…Continue reading SQL Server サブクエリを使ったInsert
SQLでの日付比較での注意点 うまく条件分岐できない、データが取れない
カラムの型を確認する SQLで日付比較をするときカラムがDate型でも、’2023/01/01’ というような文字列で渡していないだろうか? となるようなSQLだとうまく条件に当てはまらない日付がでることもある。 ほとんどのDBでは、カラムに対して、値が自動的に型変換される。 この場合、渡した’2023/01/01’が日付型に変換されるだろう。 0が…Continue reading SQLでの日付比較での注意点 うまく条件分岐できない、データが取れない
wordpress ドメイン移行 簡単な方法 mixhostにて
ドメインを変更するとき 新規ドメインにてwordpressをインストールする オリジナルのテーマを自分で作成していたので、テーマファイルはもともとある。 ない場合は、テーマファイルをコピーすればいい。 wp-content/themes/テーマフォルダ 移行先にてテーマをインストール これは、テーマフォルダを同じところにおけばいい。 記事やタグはエクスポートして、インポート データベースの内容をエ…Continue reading wordpress ドメイン移行 簡単な方法 mixhostにて
sql 他のテーブルを参照したいとき テーブル結合するか、しないか
sqlでの条件指定や、updateなどで、他のテーブルを参照したいとき、 書き方としては2つある。 ・テーブルを JOINさせる方法 SELECT * テーブルA INNER JOIN テーブルB ON テーブルA.カラムC = テーブルB.カラムD WHERE テーブルB.カラムE= 値 このSQLの内容としては、 WHERE: この条件に当てはまるカラムを選択。 INNNER JOIN: テ…Continue reading sql 他のテーブルを参照したいとき テーブル結合するか、しないか