PHP関連のことを調べてみた2022年02月10日

PHP関連のことを調べてみた2022年02月10日

PHP beginTransaction 整合性 ACID特性

“`index.php

~~~~~~~~
//Update構文にて、お金の受け渡しを想定したケース

try{
$cone->beginTransaction;

$psn->execute([
:name => $A_user, //佐藤さん(剛田さんへお金渡す人)
:money => -1 * $money //-2000円の値が入ってます。
]);

$psn->execute ([
:name => $B_user, //剛田さん(佐藤さんからお金受け取る人)
:money => $money //2000円の値が入っています。
]);

$cone->commit();
}catch(PDOExcetion $e){

echo $e->getMessage();
$cone->rollback();

}

“`

説明

①今回のケースでは、「佐藤さん」は「剛田さん」にお金を2000円振り込むケースです。

②トランザクションを用いずこのケースを処理しようとした場合

 A.正常に問題なく処理が行われる。

 B.佐藤さんの処理は正常に行わ

元記事を表示

PHPでDBに接続してSQLを実行する

# PHPでDBに接続する為の機能 = PDO
PHPでデータベースに接続するための機能を「PDO」といいます。
PDOは「PHP Data Object」の頭文字をとったもの。

【PHPリファレンス】

https://www.php.net/manual/ja/class.pdo.php

# DBに接続する
PDOを利用してデータベースの接続を行います。

“`php:sample.php
$db = new PDO(‘データベースの種類:host=接続先アドレス;dbname=データベース名’, ‘ユーザー名’, ‘パスワード’);
“`

**(例)**

“`php:(例).php
$db = new PDO(‘mysql:host=localhost;dbname=my_db’, ‘root’, ‘root’);
“`

# SQLを実行する
DB接続の後、queryメソッドを利用してSQLを実行します。

“`php:sample.php
// testという名前のTableを作成する
$db->query(‘create tabl

元記事を表示

言語を比べると見えてくるもの


この記事は[リンク情報システム](https://www.lis.co.jp/)の「TechConnect!2022年2月」のリレー記事です。
engineer.hanzomon のグループメンバによってリレーされます。
(リンク情報システムのFacebookは[こちら](https://ja-jp.facebook.com/lis.co.jp/)から)

TechConnect!2022年2月のインデックスは[こちら](https://qiita.com/hs-lis/items/69eee14fd7bec92a854f)

#はじめに
初めて記事を書くので、何を書くかで悩みましたが、
IT業界に入って一番最初に気になったことにしました。

色々なプログラミング言語があるけれど、実際どの言語が何に適しているのか、
言語ごとの実際の内容の差はどうなのか……
今回は、どこでも聞いたことのある言語4つ程に絞って軽く書いていきます。

#言語毎の特徴と、利用されている分野

**■Java**
よく名前を聞く言語1位と言っても良いのではと言う言語

・特徴
 どん

元記事を表示

PHP SQLインジェクションを意識する 初学者向け

※PHP初学者向けコンテンツです。
内容に誤りがある場合はご指摘頂けますと大変ありがたいです。

PHP学習時に何か作成しながら勉強しようと思っている際に、
DB連携を行う時、サイトに書いてあるコードをコピペして動けるようになったと満足していたあの頃の自分へ向けて書きます。

PHPを用いてDB連携を行う僕へ

例えば僕はこんなプログラムを書いていた。

“`index.php

画面上でユーザーが入力するためのフォーム画面(簡易版)です。



元記事を表示

【XAMPP】MySQLの全てのクエリログを保存する方法

#経緯
初投稿です。
XAMPPでPHPを動かしていたところ、エラーは出ないけど操作が思っていたのと違う…なんてことがよく起こるので、データベースと接続して使うなら必ず設定しておきたいところ。
この設定を行っておくと、XAMPPのMySQLにクエリを飛ばすたびにログが残るので、bindParam等でうまくいっていない時などに、最終的にどんなクエリが飛んだのかなどを確認でき、根本原因の究明につながるかと思います。

#設定方法
では早速設定方法です。
###my.iniを編集する
XAMPPを起動して「Explorer」をクリックすると、xamppのフォルダに飛べます。
![スクリーンショット (42)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2524944/04a006c3-964d-973c-ba8c-847d7746d978.jpeg)

xamppフォルダの中の「mysql」の中に「bin」というフォルダがあり、そこに「my.ini」というMySQLの設定ファイルが入っています。こ

元記事を表示

PHP独学ノート その2

PHPは大文字/小文字を区別しない。

なので

“`
PRINT ‘こんにちは、世界!
’;
pRinT ‘こんにちは、皆さん!’;
“`
のように記述しても問題なく処理される。
だが、見にくいだけでなくスペリングミスの原因にもなるのでなるべく公式ドキュメントに沿った記述を心がけるべき。

コメントは開発者のための備忘録

コメントはスクリプトの動作には関係しないメモ情報のこと。
大概他人が書いたコードは読みにくいし、自分が書いたコードも後から見るとなにがなんだか思い出せない。

そんな場合に備えてスクリプトの要所要所にコメントを残しておくことは大切。

PHPでは、コメントを記述するために3種類の記法を選択できる。

“`

“`
上記はHTMLコメント。PHPはHTML埋め込み型言語なので当然HTML部分ではこのコメントを使用できる。しかしスクリプトブロック()内では使用できない。

“`
//これはコメントです。
#これはコメントです。
“`
単一行のコメント。
「//」または「#」から行末までコメント

元記事を表示

【Laravel】PHPのバージョンを変更する

# 環境

docker-compose: 1.29.2
Laravel Framework: 8.80.0
Laravel Sail: 1.13.2

Laravel Sailを使用したLaravelプロジェクトになります。

# 手順

## `docker-compose.yml`

Laravelの[ドキュメント](https://readouble.com/laravel/8.x/ja/sail.html#sail-php-versions)にも手順がありますが、
それに則れば実現できるとは思います。

“`yml:docker-compose.yml
# PHP 8.1
# …
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.1
image: sail-8.1/app
# …

# PHP8.0
# …
services:
laravel.test:
build:
context: ./vendor/lara

元記事を表示

【PHP】echo省略 PHPタグ省略

セミコロンも省略できるし使いやすい

#コード
“`PHP




“`
#結果
“`
1234ギブミーチョコレート1234ギブミーチョコレート
“`

元記事を表示

M1 Macでno matching manifest for linux/arm64/v8が発生した

dockerイメージでMySQLを使用しようとしたら以下のようなエラーが出た

“`
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries
“`

#解決方法:

docker-compose.ymlにplatform指定をする

“`
db:
platform: linux/x86_64 # M1チップ対応のため追記
image: mysql:5.7
container_name: app_db
“`

元記事を表示

PHP インスタンス変数のクラスを判定する

# 概要

– PHPにてインスタンスが格納されている変数(インスタンス変数)のインスタンス化元クラスを判定する方法をまとめる

# 方法1 型演算子(instanceof)の使用

1. 下記の様に記載することでインスタンス変数がクラス名を元にインスタンス化されたものならtrue、そうでなかった場合falseが帰る。

“`php
インスタンス変数 instanceof クラス名
“`

# is_a関数の使用

1. 下記の様に記載することで、インスタンス変数が当該のクラス、または親の一つに「クラス名」で指定したクラスが含まれる場合true、そうでなかった場合falseが帰る。

“`php
is_a(インスタンス変数, ‘クラス名’)
“`

# 参考文献

– [https://www.php.net/manual/ja/language.operators.type.php](https://www.php.net/manual/ja/language.operators.type.php)
– [https://www

元記事を表示

Laravel 9.x「 AWS Cloud9+Amazon Linux2 」で開発環境を作る

#この記事は「サポート解説動画を用意」しています

早く教えて~って方はページ下部の動画も見てください。

#1.PHPセットアップ
次の順番でコマンドを実行していけば環境が作れます!!

“`bash:PHP8アップデート

#<重要!!必ず1行ずつコマンドを打つこと!>
// パッケージのアップデート
sudo yum update -y

// composerバージョンアップ
sudo composer self-update

// PHPのパッケージをすべてアンインストール
sudo yum -y remove php-*

// amazon-linux-extrasをアップデート
sudo yum update -y amazon-linux-extras

// amazon-linux-extrasで使用中のパッケージと使えるパッケージを確認
amazon-linux-extras

// lamp-mariadb10.2-php7.2を使用停止
sudo amazon-linux-extras disable lamp-mariadb10.2-php7.

元記事を表示

PSRについての個人メモ

# 内容

– PSR1 PSR2の定義は下記に和訳されたものがある。
– [http://www.infiniteloop.co.jp/docs/psr/psr-1-basic-coding-standard.html](http://www.infiniteloop.co.jp/docs/psr/psr-1-basic-coding-standard.html)
– [http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html](http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html)
– PSR2の条件の最初に「PSR1に準拠している事」と記載されているのでPSR2に準拠していたら自動的にPSR1にも準拠していることになる。

元記事を表示

【CodeIgniter3(コードイグナイター)】$this->db->order_by()でnullを一番下にする

###sqlのcoalesce関数を使えば解決

筆者はべた打ちが嫌いであり、コードイグナイターのorder_by()でnullを一番下に持って行きたかった。

※例

画像があるデータを一番上にして、nullのふりがなを一番下にした状態で、ふりがなで昇順ソート

“`PHP
$this->db->order_by(“img_icon_flg DESC,coalesce(furigana, ”) = ” ASC,furigana”);
“`

元記事を表示

PHPの三項演算子

#三項演算子とは

“`
条件式 ? 式1 : 式2
“`

条件式を評価し、TRUEであれば式1をFALSEであれば式2を返す。
演算子なので、IF分とは違い処理を記述するのではなく式を記述する。

元記事を表示

Moodleの”サイトアップロード上限”を変更する。

標準では2MBが最大なのだが、バックアップファイルのサイズは2MBを超えることもある。Moodleだけでは最大値は変更できないので、php-fpm側の設定を変更する。

# 環境

– Ubuntu 18.04
– Moodle 3.10
– php-fpm 7.2
– nginx 1.14.0 (Ubuntu)

# 設定

以下では、最大サイズを8MBに設定している。

“`php:/etc/php/7.2/fpm/php.ini
post_max_size = 8M
upload_max_filesize = 8M
max_execution_time = 600
“`

“`:/etc/nginx/sites-enabled/default
location ~ [^/]\.php(/|$) {
client_max_body_size 8m;
}
“`

# 再起動

“`
sudo systemctl restart php7.2-fpm
sudo systemctl restart nginx
“`

# 結果

![size –

元記事を表示

【中国語】什么是.env文件?

在环境搭建过程中,经常会遇到.env文件,对于初学者来说,env到底是什么文件呢?

元記事を表示

【Laravel】マイグレーションの基礎

#はじめに
Laravelでの共同開発で自身が担当したタスクをまとめていきます。
初学者のため学習のアウトプットしての意味と備忘録としての意味で書いています。
もし間違いがありましたらコメントにてご指摘いただけますと幸いです。

#マイグレーションとは
マイグレーションとはデータベースのバージョン管理機能。

##マイグレーションのメリット
マイグレーションを使わずDB作成、テーブル作成をする時はSQLコマンド、phpmyadminですることも可能です。
ただ、チーム開発の場合1人1人がSQLコマンドを実行したりするよりもマイグレーションを使うとマイグレーションファイルを共有してartisanコマンドを実行するだけでチーム全員同じDBの作成が簡単にできることがメリットです。

##マイグレーションファイル作成
artisanコマンドを使用しマイグレーションファイルを作成する。
`$ php artisan make:migration create_users_table`

作られたファイルの場所は`database/migrations`フォルダに設置される。

#マイグレーシ

元記事を表示

XAMPPのapacheがスタートしない件が二日かけて解決

定番な解決法として、サーバーネームが異なるため、ローカルホストの80を8080に変えるといった様々なことを試しても解決しませんでした。

そこで、たまたま私が見つけた解決法があったので紹介します。。

それは、xamppのファイルを右クリックし、アクセスを許可するのところから、アクセスを削除する。

たったこれだけで、apacheが起動しないのが解決しました。あの二日間は何だったのか。。

起動しないで悩んでいる方、(ほぼいないと思う)ぜひ検討してみてください。何かあった時の保証はできません!

では!引き続き勉強を頑張っていきたいです!

元記事を表示

PHP独学ノート その1

PHPは(スクリプトブロック)の~の部分に処理を記述する。
なお、スクリプトブロックが.phpファイルの末尾で終わる場合はスクリプトの終了を表す ?> は省略できる。
むしろ省略しないとレイアウトに微妙にズレるので省略した方が良い。

出力方法はecho か print。


文字列を指定する場合には必ず前後を ‘ シングルクォートか “ ダブルクォートでくくる必要がある。

PHPはHTML埋め込み型言語である。

なのでHTML内に記述することができる。

省略構文
出力するべき値が増えてくると php や print といった記述ですら間違えやすさに直結する。
なので単純な値を出力する場合にの代わりに、
がある。


PHPでは、文の区切りに ; セミコロンを使う

元記事を表示

ブラウザバック時、フォームの値を表示させない方法

## 解決したいこと
フォーム送信完了後にブラウザバックするとき、フォームの入力値を消したかった。

## 解決方法
該当フォームに対し、`autocomplete=”off”`を追加する。
自動補完をオフにすることによって、入力値を保持しなくなる。

“`HTML

 

“`

また、`form`だけでなく`input`にもこの属性を追加できる。

“`HTML

 

“`

## 詳細

### 対象者
* プログラミング初学者

* php初学者

### 経緯
ログイン後のマイページに、文書投稿のためのフォームを置いていた。
以下の流れでページ遷移する。

1. フォーム入力

元記事を表示

OTHERカテゴリの最新記事