のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,339,174人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレPHP + PostgreSQL

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - タグè¿1⁄2åŠ + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    151 : 名無しさん@お腹 - 2001/04/07(土) 05:13 ID:vwo99Xeg.net (+23,+28,-66)
    >PostgreSQL の場合、ホビーよりビジネスでの利用が多いから、
    >安定性が確認されていないベータ版には興味がないのかもしれないね。

    つーか、ほいほい導入してもデータの移行が大変なんだよ
    152 : 名無しさん@お腹 - 2001/04/10(火) 14:37 ID:zIPEt9lw.net (+4,+9,-19)
    セッション管理についてわかりやすく説明されている
    サイトはありますか?
    153 : 名無しさん@お腹 - 2001/04/11(水) 01:46 ID:???.net (+114,+29,-141)
    基本中の基本だとは思うのですが、私の少ない脳味噌では考え付かないので、
    どなたかご親切なアドバイスをいただけませんか?

    フォームからInsert用のデータを受取り、それを処理するファイルがhoge.php3
    とします。
    フォームからのデータ自体をphp3利用でPostgreSQLにInsertすることまでは出
    来ました。
    しかし、このままでは本当にそのデータがちゃんとデータベースに登録されたのかど
    うかがフォームに書き込んだ人は判りませんから、同じhoge.php3にデータ登録後
    に今度は今ちょうど登録したデータはこれでいした、みたいに表示させたいのです。
    でも、それを簡単に処理する方法がどうしても思い付きません。

    是非この簡単・初歩の初歩だとは思うのですが、それすら判らない厨房に是非暖かい
    アドバイスをいただけませんでしょうか?
    157 : 153 - 2001/04/11(水) 15:31 ID:5X9lWT8g.net (+19,+30,-48)
    >>154
    >>155
    >>156
    皆さん本当にありがとうございます。
    PHPの本を買って、色々関数を探してみているのですが、実際にそれ
    らをどう活用するのかが今ひとつ理解しきれていません。

    今晩家に帰って早速皆様から教えていただきました方法を試してみ
    ます。
    結果はまた今度お知らせします。
    158 : PHP-jp観察 - 2001/04/11(水) 17:56 ID:???.net (-23,-30,+0)
    PHP-jp 11121
    より引用。

    -----------------------------
    ってな、環境のシステムのプログラムを引き継ぐ事になってプログラムの改良を
    行っているのですが、以下の様なコードで2回目のpg_execで処理が戻るまで
    約40分くらい掛かってしまいます。
     ----------------------------------------------------------------------
      $sql1 = "SELECT * FROM usertable WHERE syumi='".$syumi_data."'";
      $user = pg_exec($conn, $sql1);
      $row = pg_numrows($user);
      $temp = "user_id in ('".pg_result($user, 0, user_id);
      for ($j = 1; $j < $row; $j++) {
       $temp = $temp."','".pg_result($user, $j, "user_id");
      }
      $temp = $temp."')";
      $sql2 = "SELECT * FROM maintable WHERE ".$temp." ORDER BY user_id";
      if (false == ($main = pg_exec($conn, $sql2))) {
       echo "検索失敗";
       return false;
      } else {
       echo "検索完了";
      }
     ----------------------------------------------------------------------

    原因は、前のpg_execで見つけてきたuser_idが7000件近くあって、
    -----------------------------

    joinを知らない奴、逝ってよし。
    しかも質問者は、selectを中止させる or postgresプロセスをkillする
    方法を探してるときたもんだ。
    159 : 153 - 2001/04/11(水) 19:44 ID:5X9lWT8g.net (+35,+29,-45)
    >>158
    実は私が質問する際、PHP-jpと2ちゃんねるのどちらで聞こうか
    迷いました。
    最終的にこちらで教えてくれる人達の方が凄く親切・丁寧である
    ような気がして、昨晩書き込みした次第です。
    なんだかPHP-jpだと、初心者だと突き放されそうな気がして、ど
    うも尻ごみしてしまいます。
    160 : Error 40 - 2001/04/11(水) 20:50 ID:???.net (+38,+29,-17)
    >>159
    ここは、あまり煽ラーがいないので、いごこちいいですね。
    161 : 電動ナナシ - 2001/04/12(木) 10:39 ID:???.net (-24,-30,-41)
    >>158
    これはちょっとショッキングだなあ。
    SELECT m.user_id, .... FROM usertable u, maintable m WHERE u.user_id = m.user_id
    AND u.syumi = :SYUMI ORDER BY m.user_id;
    ってするだけの話だよね。

    さっき pgsql にも流れてきたけど、根本的に SQL が分かっていないねえ。
    162 : Error 40 - 2001/04/12(木) 12:04 ID:???.net (+29,+30,-81)
    >>161
    どんな言語が出ても、こうする人たちは一生こうしていくんだと思う。
    で、「このSQL文投げると○○分帰ってきません」とかなる。

    ちょっとSQL勉強して、各DBエンジンのクセやコスト算出方法を知れば
    こんなことなくなると思うんだけど。

    この間、ちょっとかかわった某大規模システムもそんな感じで設計されてた。
    JOINを知らないのはおろか、数千レコードのあるカラムの合計を取ってくるのに、
    数千回ループして、+=してた。
    しかも、それ、Webシステムのサーバアプリ部分。どうなったのかな、アレ。
    163 : 153 - 2001/04/12(木) 12:12 ID:UHdu1Ra2.net (+35,+30,-78)
    >>160
    たまたま話題としてPHPの判る人でなければ煽れない(のかな?)
    ということで、本当に煽ラーがいなくて助かります。
    逆に皆さんの書き込み見ていると、欲しいと思っていた答えがズ
    バリと回答されてたりしますので、この板を色々参考にさせてい
    ただいてます。
    164 : 名無しさん@お腹 - 2001/04/13(金) 00:34 ID:I2dkOEWk.net (+11,+26,-20)
    >155
     insert 直後なら、プライマリキーも保持したまま
    だろうから、それを where につっこんだら
    いいんじゃないのかな・・。
    oid は、索引されてなくて遅い。
    165 : 名無しさん@お腹 - 2001/04/13(金) 14:32 ID:???.net (-19,-7,+0)
    sage
    167 : 名無しさん@お腹 - 2001/04/13(金) 23:52 ID:7roKMnwY.net (+9,+28,-3)
    そもそも 主キーはないの?
    170 : 名無しさん@お腹 - 2001/04/14(土) 00:42 ID:3tHlDu72.net (+14,+29,+0)
    くっきー
    172 : cookie - 2001/04/14(土) 12:52 ID:???.net (-19,-7,+0)
    sage
    173 : 153 - 2001/04/14(土) 13:46 ID:DdiGfCB6.net (+15,+29,-14)
    >>171
    ご指摘ありがとうございます。
    その場合、今登録された主キーのIDはどのようにして特定すればいい
    のでしょうか?
    174 : 電動ナナシ - 2001/04/14(土) 13:58 ID:???.net (+22,+15,-172)
    POST された内容に含まれているでしょ?
    というか、主キーが意味はわかっていないのかな・・・。
    テーブル中のレコードを一意に識別する ID に相当する列のことだよ。

    例えば、人事テーブルがあって、そのテーブルが
    (従業員ID, 氏名, 住所, 連絡先)
    という風になっており、同姓同名の人を区別するために従業員 ID を使って
    識別しているなら、従業員 ID が主キーになる。

    普通主キーとなる列に対しては、重複する列の挿入を禁止するために
    Primary Key 制約か Unique 制約を定義するけど、その辺ちゃんとやってる?
    これは PHP とか PostgreSQL とかいう以前の、データベース一般の設計の
    お話だよ?
    175 : 電動ナナシ - 2001/04/14(土) 14:34 ID:???.net (+29,+29,-104)
    >>174
    おおっと、ID も Primary Key はあるって >>168 に書いてあるね。
    勘違いしていた。ごめんなさい。

    なるほどね、INSERT した直後に、自動的に割り当てられる ID をどうやって
    特定するかって質問なのね。

    これは先の人が書いているように oid を取得して特定するしかないんじゃないかな。
    それ以外の列って重複する可能性があるから当てにならないしね。

    ちなみに自分は自動連番はやってない。登録フォームを表示するときに
    squence から番号を取得して、その番号をフォームに保持させておく。
    そうすれば、POST された内容に ID が入っているのでそれをキーに参照
    できるようになる。

    これの欠点は、番号に欠番が生じるということ。だけどそれがそんなに気に
    するほどのことかなあ。
    178 : 名無しさん@お腹 - 2001/04/15(日) 15:02 ID:/XgA0t4..net (-16,+2,-4)
    >>177
     ほんとかな。begin, end で囲っているのに?
    183 : 176 - 2001/04/16(月) 01:22 ID:BsAjfbqo.net (+14,+29,-2)
    >>181
     変わらないよ。要はそれを言いたい。
    184 : 176 - 2001/04/16(月) 11:46 ID:rXDXOhM2.net (-21,+29,-18)
    177 さんの場合では、変わるようで、
    わたしの実験ミスも考えられるし、想定外もあるし、
    特定の環境というケースもあるので、変わるケースがあるなら
    教えて欲しいのですよ。
    185 : 名無しさん@お腹 - 2001/04/16(月) 14:47 ID:???.net (-20,-29,-80)
    >>184

    話の流れと発言者が何人いるかよくわかりませんが、
    >>178でいきなり
    >ほんとかな。begin, end で囲っているのに?
    という前提条件が登場します。
    これが178氏と他の人の差じゃないかな?

    >同じセッション内なのに、currval の値は変わるのですか?

    という問いには、

    * 同一トランザクション内であれば変わらない、が正解。
    * begin, endでくくっていない1DML1トランザクションで、currval()を使うのは
    誤り。他のプロセス(トランザクションで)値が変わっている可能性がある。

    ということでよいでしょうか?>All
    186 : 185 - 2001/04/16(月) 14:50 ID:???.net (-27,-30,-56)
    大間違い。

    * begin, endでくくっていない1DML1トランザクションで、currval()を使うのは
    誤り。他のプロセス(トランザクションで)値が変わっている可能性がある。

    これは誤り。1DML1トランザクションでも、currval()は他のプロセス
    (トランザクション)にかかわらず、普遍ですね。
    セッション内で一貫性があるようです。

    鬱氏。
    189 : 名無しさん@お腹 - 2001/04/16(月) 21:24 ID:???.net (+30,+30,-56)
    まぁ、どうでもいいことなんだけど、MLで
    「シーラカンス本」
    「マンモス本」
    を前提に語るのはやめて欲しいなー。
    あ、俺は両方持ってるんだけど。
    前者はバージョンが古いし、後者はちょっとアレだし・・・。
    今一、人に薦めづらいんだよね、この本って。
    191 : 名無しさん@お腹 - 2001/04/17(火) 00:07 ID:???.net (-19,-7,+0)
    sage
    192 : 名無しさん@お腹 - 2001/04/17(火) 00:07 ID:khLeTQ8c.net (+30,+29,-13)
    MLはなんか変な奴多くない?
    技術系ってそうなのかなぁ。妙に偉そうだったりするの
    194 : 名無しさん研究所 - 2001/04/17(火) 00:51 ID:???.net (+42,+29,-28)
    >>192
    激しく同意。うかつに質問なんてできないっしょ。
    だから意地になってマニュアル+マンモス本+過去ログで
    自分で解決してる。恐ろしく効率悪いけど・・・

    # 聞くは一時の恥、聞かぬは一生の恥 とも言いますが・・・
    195 : 名無しさん@お腹 - 2001/04/17(火) 10:14 ID:???.net (+33,+29,-12)
    >>194
    そう。ネット上じゃ逆だねぇ。。
    196 : 名無しさん@お腹 - 2001/04/17(火) 12:33 ID:O8m0NJyM.net (-9,+27,-14)
    >>190
    トランザクションを入れてみては・・
    199 : 名無しさん@お腹 - 2001/04/18(水) 01:01 ID:oVgMs8gw.net (+18,+29,-30)
    >>190
    >>196
    トランザクションをアボートしても、serial型の場合、
    インクリメントされちゃった値はもどんないよ~。
    って、どっかのスレでも話題になってなかった?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - タグè¿1⁄2åŠ + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について