!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 12
https://mevius.5ch.net/test/read.cgi/tech/1619667579/
次スレは>>980以降
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
探検
【PHP】下らねぇ質問はここに書き込みやがれ 13
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (アウアウクー MM6f-zbgo)
2021/09/09(木) 09:38:43.41ID:eDlF7Xc4M972デフォルトの名無しさん (ワッチョイ 1e66-OVjx)
2022/09/13(火) 11:25:42.23ID:k/lRopxK0 どっか間違ってるの?
973デフォルトの名無しさん (ワッチョイ ea63-OdF3)
2022/09/13(火) 11:44:23.05ID:1xD6R/mV0 ドット演算子はCobolの頃からある
974デフォルトの名無しさん (ワッチョイ 66f2-JkEp)
2022/09/13(火) 11:46:51.82ID:Gwjyu6tY0 変数型宣言がない言語で+で文字連結できちゃうとバグの温床になる
975デフォルトの名無しさん (ワッチョイ 1e66-OVjx)
2022/09/13(火) 11:48:10.80ID:k/lRopxK0 だから、個々は別から引用したかもしれんが、
3つ揃い踏みしたトップランクメジャー言語はと書いてるじゃないか。
3つ揃い踏みしたトップランクメジャー言語はと書いてるじゃないか。
976デフォルトの名無しさん (ワッチョイ ea63-OdF3)
2022/09/13(火) 11:49:48.73ID:1xD6R/mV0 あ、ごめん
間違いだ
間違いだ
977デフォルトの名無しさん (ワッチョイ 157b-hFL5)
2022/09/13(火) 12:58:34.49ID:d4v/1ArY0978デフォルトの名無しさん (ワイーワ2 FF92-pw5f)
2022/09/13(火) 13:58:56.46ID:CtcsooHUF テンプレートリテラル{}使うか.による文字列結合使うかの判断がちゃんと出来ない
今の所ラクな方選んでるだけだな
今の所ラクな方選んでるだけだな
979デフォルトの名無しさん (ワッチョイ 7702-okD4)
2022/09/17(土) 18:54:08.82ID:X8JZx5Pn0 それでいいわ。強いて言うならエスケープしないで済む方
980デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/19(月) 12:37:28.97ID:TYV9CYn40 PHPの学習で、トランザクション勉強していますが。
おおざっぱに、「一連のクエリ処理を一つの処理と見立てて、途中失敗したら最初からなかったことにする」
機能かと思います。
で、課題として、簡単なECサイト作っています。
一般の利用者が商品を選択しカートを入れ、お金を払って買い上げるのようなものです。
テーブルは「カート」「商品情報」「利用者」「在庫情報」です。(ほんとは英字です。)
利用者が購入に失敗したら、ロールバックで購入が無かったことにします。
ここで、一連のクエリ処理というのは、「商品を選びカートに入れる」というところから始まるのでしょうか?
「商品を選びカートに入れる」という行為と、「カートにある商品を買う」という行為を
わけて、「カートにある商品を買う」について、トランザクションを設定するものでしょうか?
すいません。意味とおりますかね。。よろしくお願いします。
おおざっぱに、「一連のクエリ処理を一つの処理と見立てて、途中失敗したら最初からなかったことにする」
機能かと思います。
で、課題として、簡単なECサイト作っています。
一般の利用者が商品を選択しカートを入れ、お金を払って買い上げるのようなものです。
テーブルは「カート」「商品情報」「利用者」「在庫情報」です。(ほんとは英字です。)
利用者が購入に失敗したら、ロールバックで購入が無かったことにします。
ここで、一連のクエリ処理というのは、「商品を選びカートに入れる」というところから始まるのでしょうか?
「商品を選びカートに入れる」という行為と、「カートにある商品を買う」という行為を
わけて、「カートにある商品を買う」について、トランザクションを設定するものでしょうか?
すいません。意味とおりますかね。。よろしくお願いします。
981デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/19(月) 13:12:25.33ID:9xLKPVoG0 単に最後の購入処理で途中でエラーが発生して整合性が取れない時に
ロールバックするぐらいのイメージで良いのでは?
途中のカートに追加するような処理はそれ単体で失敗すればロールバックかなと
(この場合、カートに追加する処理に失敗したという事でカートは前のまま)
ロールバックするぐらいのイメージで良いのでは?
途中のカートに追加するような処理はそれ単体で失敗すればロールバックかなと
(この場合、カートに追加する処理に失敗したという事でカートは前のまま)
982デフォルトの名無しさん (スップ Sd3f-Zv9H)
2022/09/19(月) 13:18:10.02ID:k2Lhsy4nd カートに入れるところからトランザクション始めたら買われるまで一連の処理終われないし、途中でタイムアウトするやろw
983デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 13:19:16.24ID:zeLiCYh20 カートに入れる処理はトランザクション二する必要がない
利用者が自分の意志で取り消すケースもあるわけだし
必要なのは、利用者が決定ボタンを押して、購入完了になるプロセスくらいじゃないかな
一つしかない商品を他の利用者と競合して購入したかもしれないし
複数種類を購入した際に、一つが在庫不足になってたかもしれない
そういうときに、決定ボタンを押す直前までロールバックが必要になる
利用者が自分の意志で取り消すケースもあるわけだし
必要なのは、利用者が決定ボタンを押して、購入完了になるプロセスくらいじゃないかな
一つしかない商品を他の利用者と競合して購入したかもしれないし
複数種類を購入した際に、一つが在庫不足になってたかもしれない
そういうときに、決定ボタンを押す直前までロールバックが必要になる
984デフォルトの名無しさん (ワッチョイ ffbb-AZvI)
2022/09/19(月) 14:16:17.85ID:8Jf173KW0 トランザクションとかセッションとかは文脈で定義される範囲が変わるのでちゃんと意識して書いたほうがいい
その上で、今回はDBのトランザクションのことだとエスパーして回答すると設定される範囲は間違い
記述がないので何をトランザクション処理として設定するかは回答できないけど、「ユーザの決済処理」「在庫処理」あたりがひとまとまりになると思う
入門書で記述されるトランザクションとついでにプリペアドステートメント(プレースホルダ)処理はデータベース側の処理なので入門書から離れてデータベース側の処理をデータベースの公式を参照しながら学習すると良い
その上で、今回はDBのトランザクションのことだとエスパーして回答すると設定される範囲は間違い
記述がないので何をトランザクション処理として設定するかは回答できないけど、「ユーザの決済処理」「在庫処理」あたりがひとまとまりになると思う
入門書で記述されるトランザクションとついでにプリペアドステートメント(プレースホルダ)処理はデータベース側の処理なので入門書から離れてデータベース側の処理をデータベースの公式を参照しながら学習すると良い
985デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/19(月) 16:01:50.25ID:TYV9CYn40 みなさんありがとうございました。
良くわかりました!
良くわかりました!
986デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 00:39:07.48ID:Sb2Kpzh+0 phpmyadmin にINT型でUNSIGNED(整数マイナスを除く)に設定したカラムがあります。
直接phpmyadmin上でこのカラムのデータに対して、SQL文でマイナスの値をUPDATEしようとすると
以下のようなアラートが返ってきます。ただし、データは0の値になります。
Warning: #1264 Out of range value for column 'test_int' at row 7
phpから、PDO接続で同じようにUPDATEしたとき、エラーとさせて入力を拒否したいのですが方法がありますでしょうか?
try-catch文で、以下のようにしたものの、ただ値が0になるだけしかなりませんでした。
良いアイデアがあれば教えてください。
$a =-100;
try {
$ps = $db->prepare("UPDATE tb2 SET test_int = :a WHERE nam = 'タヌキ'");
$ps->bindParam(":a", $a);
$ps->execute();
echo "UPDATE成功";
}
catch (RangeException $e){
echo "UPDATE失敗";
}
直接phpmyadmin上でこのカラムのデータに対して、SQL文でマイナスの値をUPDATEしようとすると
以下のようなアラートが返ってきます。ただし、データは0の値になります。
Warning: #1264 Out of range value for column 'test_int' at row 7
phpから、PDO接続で同じようにUPDATEしたとき、エラーとさせて入力を拒否したいのですが方法がありますでしょうか?
try-catch文で、以下のようにしたものの、ただ値が0になるだけしかなりませんでした。
良いアイデアがあれば教えてください。
$a =-100;
try {
$ps = $db->prepare("UPDATE tb2 SET test_int = :a WHERE nam = 'タヌキ'");
$ps->bindParam(":a", $a);
$ps->execute();
echo "UPDATE成功";
}
catch (RangeException $e){
echo "UPDATE失敗";
}
987デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 09:09:20.54ID:Sk0Tcp2N0 UPDATE以前二範囲チェックをPHPで行えば?
988デフォルトの名無しさん (ワッチョイ ffbb-AZvI)
2022/09/20(火) 09:18:10.74ID:fhvmpEXe0 試してないけどMySQL側に警告じゃなくてエラーを返すモードがあるみたい
https://dev.mysql.com/doc/refman/8.0/ja/sql-mode.html
TRADITIONAL を有効にすることでエラーを返すようになるみたい
https://dev.mysql.com/doc/refman/8.0/ja/sql-mode.html
TRADITIONAL を有効にすることでエラーを返すようになるみたい
989デフォルトの名無しさん (ワッチョイ 9701-jQT+)
2022/09/20(火) 12:21:17.30ID:F74Rs01Q0 事前チェックが嫌な理由はなんだろ
990デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/20(火) 15:40:51.68ID:r8LO5qc30 普通はバリデーションをしてSQLでエラーにならない値を設定するかなと
SQLでのエラーは想定外の事が起きた場合に限る感じ
SQLでのエラーは想定外の事が起きた場合に限る感じ
991デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 15:44:19.38ID:Sb2Kpzh+0 ありがとうございます。
事前チェックが良いですね。ありがとうございます。
データベースからのエラーを拾いたいのは、
トランザクションのコミットかロールバックの判断を
try-catchで補足しないといけないかと、
勝手に思っていたからです。
(多くの参考書がtry-catch文で判断していたから)
でも、処理毎にエラー文を配列に格納して、
最後の処理の後に、配列の内容の有無を確認して、
トランザクションの判断をすればいいですね。
事前チェックが良いですね。ありがとうございます。
データベースからのエラーを拾いたいのは、
トランザクションのコミットかロールバックの判断を
try-catchで補足しないといけないかと、
勝手に思っていたからです。
(多くの参考書がtry-catch文で判断していたから)
でも、処理毎にエラー文を配列に格納して、
最後の処理の後に、配列の内容の有無を確認して、
トランザクションの判断をすればいいですね。
992デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 15:59:12.72ID:Sk0Tcp2N0 トランザクション処理でその様なエラーを拾わせるって
まずくね?
たぶん、クライアントから受け取ったデータだと思うし、
それって単独で許容値かどうかを判断出来ると思うんだよ
Web画面経由なら、クライアント画面にエラー表示させて
再入力を促せると思うんだ
そうすればどう言うエラーか判断する必要もないよね
まずくね?
たぶん、クライアントから受け取ったデータだと思うし、
それって単独で許容値かどうかを判断出来ると思うんだよ
Web画面経由なら、クライアント画面にエラー表示させて
再入力を促せると思うんだ
そうすればどう言うエラーか判断する必要もないよね
993デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/20(火) 15:59:16.45ID:r8LO5qc30 バリデーション
問題があればここでエラーを返し下の処理はしない
try{
トランザクション開始
SQL実行
コミット
}catch(Exception e) {
ロールバック
DBでエラーが発生した事を返す
}
正常終了
問題があればここでエラーを返し下の処理はしない
try{
トランザクション開始
SQL実行
コミット
}catch(Exception e) {
ロールバック
DBでエラーが発生した事を返す
}
正常終了
994デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 16:20:00.83ID:Sb2Kpzh+0 入力の例外値などは、
トランザクションで判別させるようなものじゃない。
ってことですか?
トランザクションで判別させるようなものじゃない。
ってことですか?
995デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 16:27:13.11ID:Sb2Kpzh+0 トランザクションの判別は、何か想定外の問題が起きた時であって、
想定されるような問題は事前になんとかしとけということかな。
想定されるような問題は事前になんとかしとけということかな。
996デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 16:33:06.67ID:Sk0Tcp2N0 トランザクションで判定しないと行けないのは、
リソースの取り合いがあるときやDB自身の障害など
DB側でしか分からないようなケースだな
リソースの取り合いがあるときやDB自身の障害など
DB側でしか分からないようなケースだな
997デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 16:36:01.02ID:Sb2Kpzh+0 ありがとうございます。
ということは、トランザクションは、
try-catch文で例外判断するのが一般的なのですね。
ということは、トランザクションは、
try-catch文で例外判断するのが一般的なのですね。
998デフォルトの名無しさん (ワッチョイ 97da-E+l9)
2022/09/20(火) 23:33:16.97ID:k4MHQr8J0 クラスのファイル名の拡張子に .inc を使うのは
今の時代では許されてないの?
許されるなら .inc を使い続けたい
今の時代では許されてないの?
許されるなら .inc を使い続けたい
999デフォルトの名無しさん (ワッチョイ 9fb7-ldZd)
2022/09/21(水) 00:13:56.09ID:9N/hP2WI0 次スレ立ってた
【PHP】下らねぇ質問はここに書き込みやがれ 14
https://mevius.5ch.net/test/read.cgi/tech/1663659983/
>>998
まずはPSR-0や4を調べてもらって、その上でincにしたいと言うなら
個人の趣味開発くらいなら自由にしたら良いと思う
【PHP】下らねぇ質問はここに書き込みやがれ 14
https://mevius.5ch.net/test/read.cgi/tech/1663659983/
>>998
まずはPSR-0や4を調べてもらって、その上でincにしたいと言うなら
個人の趣味開発くらいなら自由にしたら良いと思う
1000デフォルトの名無しさん (ワッチョイ 97da-E+l9)
2022/09/21(水) 13:48:44.07ID:kTmMqKR0010011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 377日 4時間 10分 1秒
新しいスレッドを立ててください。
life time: 377日 4時間 10分 1秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★3 [お断り★]
- トランプ氏、女性記者に「ブタ、静かに」 エプスタイン元被告めぐる質問さえぎる [1ゲットロボ★]
- 【株価】日経平均、上げ幅一時2000円超 5万円台を回復 [蚤の市★]
- 高市首相「台湾有事」発言引き出した「立憲・岡田克也氏」に聞いた質問の真意「これはマズイ発言だと」少しずらしてみたが焼け石に水 ★2 [ぐれ★]
- トランプ氏「台湾侵攻すれば北京爆撃」“過激予告発言”報道がXで再燃「高市氏の1億倍やばい」 [七波羅探題★]
- AI搭載ぬいぐるみ「クッマ」、性的に露骨な会話をエスカレート、消費者団体の指摘で販売中止に [おっさん友の会★]
- 【高市感謝】韓国政府「福島第一原発からの16回目の汚染水放出が終わった。モニタリング結果は基準値の1/37と低かった」 冷静な対応 [485983549]
- トランプ「中国が他国産より高値で米国産大豆を大量購入してくれた。中国最高!」 どっかのバカ日本人との差w [271912485]
- 【高市餅】 もち米不足が深刻。 正月用のお餅は値上げ。 去年より5割以上高騰。 晋さん、もう日本人はお正月にお餅を食べれないよ、、、 [485983549]
- 日本人「な、なぜだ?なぜこの件で日本を助けてくれる国が0カ国なんだ!?」。日本人、さすがに気づく [805596214]
- 【高市摘発】 外国人労働者にボーナスや有給休暇を与えない悪質事業所を摘発。 差別待遇や賃金未払いなども調査へ [485983549]
- ホタテ6t(トン)、返品されるwwwwwwwwwwwwwwwwwwwwwwww [329329848]
