php
1億件のIoT計測データのデータ移行を行った話。 cronでやることになった背景 cronでデータ移行することになった背景はこんな感じ。 カラム名は仮です。 年ごとの計測テーブルBに保存されている、ある期間の数種類の製品の計測データを、四半期ごとの計測テー…
こちらの本で勉強中なので、学習記録として。 PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応作者:竹澤 有貴,栗生 和明,新原 雅司,大村 創太郎ソシムAmazon リポジトリパターンとは リポジトリパターンとは、ビジネスロジックからデ…
この本でLaravel勉強中なので、自分用にアウトプットしておく。 PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応作者:竹澤 有貴,栗生 和明,新原 雅司,大村 創太郎ソシムAmazon レイヤードアーキテクチャ ビジネスロジックを表現するサ…
結論 リダイレクト時のステータスコードは 301 ではなく 302 を使う! ※もしくは明示的に指定しなければデフォルトで302になる 前提 一般ユーザーAでログインしているときに /user へリクエストすると、制限された情報を返すAPIがある。 一方、Adminユーザー…
結論 X倍して整数にしてから、結果をXで割る。 事象 PHPで小数点以下を含む値の引き算だと、二進数表現の精度が落ちる影響で、期待した値にならないことがある。
課題 セッション名を指定して session_start() すると、セッションが取得できなかったのでメモ。 結論 セッション名を指定するときに、「.」ドットは使わない! 例 セッション名を「.」ドットで繋いで session_start() すると、セッションを取得できない。 …
環境 MAMP PHP 7.4.16 やりたかったこと PHPでCSVを出力する機能を作っていて、レスポンスヘッダーを下記のように設定したかった。 Content-Disposition: attachment; filename=ファイル名.csv Content-Type: text/csv 課題 下記のメソッドを使ってレスポン…
課題 CookieファサードとPHPのfilter_inputで取得できるcookieの値が異なる。 Laravel外からcookieを使用したいが、暗号化されているため使用できない。
環境 PHP 8.0.16 CentOS Apache 2.4 課題 本番環境にて画像をアップロードしようとしたら、 413 Content Too Large のエラーが返ってくる。 解決方法 php.ini で、 upload_max_filesize と post_max_size を確認する。 まず、そもそもどこの php.ini を読み…
定数をクラスファイルで管理する app/Consts/CommonConst.php を作成した。 [ // 省略 'CommonConst' => \App\Consts\CommonConst::class, ] ] app/Http/Controllers/Api/…
メモ程度 課題 表題の通り 対策 キー名RefererとOrigin、値はURLでリクエストヘッダーに設定してあげる。 参考 refererヘッダーまたはoriginヘッダーのチェック SPAからこのヘッダーが送られないと認証エラーになる Postmanで動作確認するときに注意する qii…
やりたいこと PHPで、多次元配列があって、指定したキーの値で、昇順・降順の並び替えができるようにしたかった。 並び替えの後、指定した番目から指定した件数分の要素だけを取得したかった。 つまり、ページネーションのイメージ。 SQLでやればこんな感じ…
普段使っているPCとは別のPCで git clone したあとに、PHPUnitを composer install しようとしたときのエラー 環境 Windows11 WSL2 php 7.4.3 エラー文 it is missing from your system. Install or enable PHP's dom extension. it is missing from your sy…
困ったこと filter_input(INPUT_SERVER, 'SERVER_NAME') これでサーバーの名前をとって、 localhost かどうかで振り分けていたが、PHPUnitを使った時に、 null で返ってきたので代替法。 解決策 php_uname('n') これでPC名がでる。 PHP が稼動しているオペレ…
結論 cacert.pem(CA証明書をダウンロードする) php.iniを書き換える そもそもcURLが使える状況かどうか php -m で確認 phpinfo() で確認 PHPでcurlを使えない場合の対処法 - Qiita grepで確認 % php -i | grep cURL cURL support => enabled cURL Informat…
やりたかったこと mysqliで直前にINSERT処理で追加したレコードの主キー(id)を取得したかったのでメモ。 実装方法 mysqli::$insert_id を使う。 直前のクエリで更新された AUTO_INCREMENT フィールドの値を返します。接続での直前のクエリがない場合や ク…
課題 PHPで $name = (string)filter_input(INPUT_POST, 'name') でPOSTの値を取得できない。 原因 $_POST() または (キャスト)filter_input(INPUT_POST, 'key') では、そもそも application/json を取得できない。 公式リファレンスでは下記のように書いてあ…
やろうとしたSQL ページネーションを作ろうと思って書いたSQL SELECT * FROM (SELECT * FROM samples WHERE id < 30 ORDER BY id DESC LIMIT 1) UNION ALL SELECT * FROM (SELECT * FROM samples WHERE id >= 30 ORDER BY id ASC LIMIT 6) エラー Every deri…
やりたいこと 課題 結論 number_formatとsprintfの挙動 number_format sprintf やりたいこと ある桁数以下は切り捨てて、それより上の桁数で値を返したかった。 例えば、小数点第三位以下は切り捨てて、小数点第二位までを返したい。 課題 ググると、 floor …