タグ

ブックマーク / qiita.com/mpyw (10)

  • WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました! - Qiita

    WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました!MySQLSQLPostgreSQLDatabaseQiitaEngineerFesta2022 TL; DR MySQL/Postgres とも, MVCC アーキテクチャの恩恵で, SELECT と UPDATE は基的には競合しない。 単一レコードのシンプルな UPDATE でも排他ロックされ,排他ロック中のレコードへの UPDATE での変更操作は トランザクション分離レベルによらず ブロックされる。UPDATE 文に含まれる WHERE 句での検索もブロックされ,これはブロックされない SELECT による検索とは別扱いになる。 但し UPDATE 文の WHERE 句上で,更新対象をサブクエリの SELECT から自己参照している場合は例外。トランザクション分離

    WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました! - Qiita
    amashio
    amashio 2022/07/05
  • ここがつらい! Slack API - Qiita

    半分ネタ記事です。あんまり真面目に書きません。 項目数が多いので,気力でなんとか書きます。分類は諦めます。 他にもある!っていうのがあったらコメント欄で教えて下さい。気が向いたら追記します。 公式の TypeScript 型定義がもはや型定義を諦めている 辛い度: ★★★★★ 辛い中でもこれはかなり上位に来るやつ。 こちらに OpenAPI 形式で仕様が定義されていて, https://github.com/slackapi/node-slack-sdk/tree/main/packages/web-api/types ここに仕様に基づいて TypeScript の型定義ファイルが吐かれるようになっています。 Git 管理されていないので,実際のリリースを見てみましょう。 https://unpkg.com/@slack/web-api@6.7.2/dist/response/Reacti

    ここがつらい! Slack API - Qiita
    amashio
    amashio 2022/06/19
  • PDOフェッチパターン大全 - Qiita

    忙しい人向け Q. PDO::FETCH_ASSOCでフェッチするとき,キーを整数連番じゃなくてidにする方法は? A. PDO::FETCH_UNIQUEを組み合わせる. $sql = "SELECT id, * FROM people WHERE gender = 'female'"; $rows = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE); var_dump($rows); /* [ 3 => ['id' => '3', 'name' => 'Lucy', 'gender' => 'female'], 5 => ['id' => '5', 'name' => 'Mary', 'gender' => 'female'], ] */

    PDOフェッチパターン大全 - Qiita
    amashio
    amashio 2021/09/28
  • [PHP] リクエストパラメータ・セッションに関するまとめ - Qiita

    予備知識 スーパーグローバル変数とは? 「スーパーグローバル変数って何?」って感じの駆け出しPHPプログラマのために念のためマニュアルへのリンクを記載しておきます.全然知らない人は軽く読んでおいてください. PHP Manual - 変数のスコープ PHP Manual - スーパーグローバル HTTPとは? リクエストヘッダー・レスポンスヘッダー と聞いてピンと来ない人はまず下記サイトにて予習をお願いします.細かいことは覚える必要は無いので,大雑把に「ヘッダーとはどんなものか」ということを理解してください. Qiita - 【PHP超入門】HTTP(GET・POST)について Qiita - 【PHP超入門】Cookieとセッションについて @7968さんによるQiitaの記事です.右も左もわからない人はまずこれで. とほほのWWW入門 - HTTP入門 最初の記事をもう少し体系的にまと

    [PHP] リクエストパラメータ・セッションに関するまとめ - Qiita
    amashio
    amashio 2019/09/01
  • ファイルアップロードの例外処理はこれぐらいしないと気が済まない - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 脆弱性について 参考リンク PHPにおけるファイルアップロードの脆弱性CVE-2011-2202 PHP 5.4.1リリースのポイント 上記に対する補足説明 PHP 5.4.1以降 PHP 5.3.11以降 どちらかを満たしているならば,脆弱性は(今のところ)無い.どちらも満たしていないと, $_FILES 変数の構造を崩す攻撃 ../ をファイル名に含めて送信する攻撃 (ディレクトリトラバーサル) の何れか,もしくは両方の脆弱性を所持していることになるので要注意. 脆弱性対策と注意事項 $_FILES Corruption 対策 改竄されたフォームからの複数ファイル配列送信対策 脆弱性が修正された環境でも 改竄フォーム対策 も兼ねて

    ファイルアップロードの例外処理はこれぐらいしないと気が済まない - Qiita
    amashio
    amashio 2016/08/09
  • PHPネイティブのDOMによるスクレイピング入門 - Qiita

    はじめに 淫夢要素はありません。 Simple HTML DOM Parser や Goutte の使い方は至る所で説明されていますが、PHPネイティブのDOMに関しての記事がかなり少ないので書いてみることにします。 ちなみに… Simple HTML DOM Parserは内部で何回も正規表現を使って全ての要素をパースするので、かなり遅いです。これ使うぐらいなら最初から自分で正規表現一で書いたほうがマシ。自分で正規表現を使って必要部分だけを抜き出す方法は、全ての方法の中で最も高速なので、正規表現が得意な人だったらこれでもいいと思います。 Goutteは内部でPHPネイティブのDOMを使ってます。PHPネイティブのDOMはDOMとして読ませる方法の中では最も高速なので良い方法をチョイスしていることになるのですが、そもそもGoutteに頼らなくてもそれなりに十分やっていけます。何より依存フ

    PHPネイティブのDOMによるスクレイピング入門 - Qiita
    amashio
    amashio 2015/05/23
  • PHPオブジェクト指向入門(前半) - Qiita

    コンセプト オブジェクト指向プログラミング未経験者~理解を深めたい人、ノンケ~ホモまで幅広くカバーするつもり。多分。 クラスとオブジェクト(初級) 唐突ですが、量産型のロボットの設計・製造について考えてみましょう。 ロボ太郎 ロボ次郎 イラストで初心者を釣る クラス まず、ロボットの設計図を クラス として定義します。設計図をもとにロボットを製造するには、 new 演算子を使います。製造された物体のことを オブジェクト や インスタンス と呼びます。ここではこれらの用語を区別せずに用いることにします。 Yahoo!知恵袋 - オブジェクトとインスタンスの違い

    PHPオブジェクト指向入門(前半) - Qiita
    amashio
    amashio 2015/05/11
  • [PHP] ライブラリに頼らないTwitterAPI入門 - Qiita

    前書き 「ライブラリで何してんのか分からないから気持ち悪いんじゃヴォエエエ」 って人は読んでみるといいと思うよ(震え声) HTTP通信について全く知らない人は、先に以下のリンク先を読んでおいてください。 とほほのWWW入門 - HTTP入門 リクエストパラメータ・セッションに関するまとめ ※ HTTP通信における改行コードは全て \r\n です。 GET /1.1/statuses/show.json?id=464526017030545409 HTTP/1.1 Host: api.twitter.com Authorization: OAuth oauth_consumer_key="***", oauth_signature_method="HMAC-SHA1", oauth_timestamp="***", oauth_version="1.0a", oauth_nonce="***

    [PHP] ライブラリに頼らないTwitterAPI入門 - Qiita
    amashio
    amashio 2015/02/27
  • PHPを利用したBasic認証の仕組み - Qiita

    注意 この記事はBasic認証フローの仕組みを解説することに重点を置いており,セキュリティに関してはあまり考慮しておりません.セキュリティを考慮した実用的な実装に関しては以下をあたってください. PHPによる簡単なログイン認証いろいろ password_verifyは当にタイミングセーフなのか? 導入 「今どきBasic認証みたいな危険なもの使うなんて…」 なんて心配はさておき、何故以下のような記述でダイアログを交えた認証フローが成り立つのか疑問に思っていました。結論からすれば大したことないんですけど、それがイメージしにくかったのでここにメモしておきます。 <?php switch (true) { case !isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']): case $_SERVER['PHP_AUTH_USER']

    PHPを利用したBasic認証の仕組み - Qiita
    amashio
    amashio 2014/11/08
  • PHPでデータベースに接続するときのまとめ - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース

    PHPでデータベースに接続するときのまとめ - Qiita
    amashio
    amashio 2013/09/06
  • 1