PHP + PostgreSQL
■ このスレッドは過去ログ倉庫に格納されています
0001りさあ
NGNG0262marois
02/02/12 01:39ID:Ixi/JtIeテーブルの更新にはトランザクションは使ってます。
一応複数SQL流すので保険として。
話はちょっとそれますが、サンプルプログラムでコネクションをグローバル
変数に保持して、それを最後まで使い続けるプログラムを見たことがありま
す。最後にユーザーがLogoutしてくれればpg_close出来ますが、いきなり
ブラウザをばっさり終了されてしまうと出来ないですよね。
コネクションにあんまり神経質になんなくても良いのですかね。
同時接続50-100ぐらいを想定しているもので...ちょっと心配なのでした。
0263名無しさん@お腹いっぱい。
02/02/12 21:51ID:???公式本とかいうやつか?
postgresql.jpのだろ。
0264名無しさん@お腹いっぱい。
02/02/18 21:01ID:???コネクション云々を考える負担が軽減されますよ。
0265名無しさん@お腹いっぱい。
02/02/18 23:58ID:???pearてわからんちん・・・( ´Д⊂ヽ ウエーン
0266(=゚ω゚)ノ ◆SI2r4V0c
02/02/19 10:36ID:???0267(=゚ω゚)ノ ◆SI2r4V0c
02/02/19 10:38ID:???0268名無しさん@お腹いっぱい。
02/02/19 10:44ID:???http://www.php.net/manual/ja/features.persistent-connections.php
らしいです。
あんまり神経質にならなくてもいいみたいです。
0269名無しさん@お腹いっぱい。
02/02/19 16:40ID:???日付の末尾に+9という値(GMT?)が付くんですが、これを取り外すには
どのようにすればいいんでしょうか。
0270名無しさん@お腹いっぱい。
02/02/19 16:59ID:???マヌエルて助っ人野球選手がいたよね昔。
(◕ฺ∀◕ฺ)
0271marois
02/02/19 23:38ID:SCYCQAYn情報ありがとうございます。
大変参考になりました。
話が変わるのですが、皆さんは文字コードに何をつかっておられますか?
結構文字化けに悩まされています。(PHP3i18でも)
私の場合、EUCでソースを書いて、EUCでDBに格納しているのですが、ブラウザが
Shift-JISと間違って判断してしまう場合があるようです。
<meta .htaccess と色々試してみたけど、駄目なときがある。
Shift-JISでソース、Shift-JISでDB格納していらっしゃる方はいらっしゃいま
すか? どんな組み合わせが文字化けしにくいんでしょうか?
0272名無しさん@お腹いっぱい。
02/02/20 00:07ID:???情報ありがとうございます。
大変参考になりました。
0273名無しさん@お腹いっぱい。
02/02/20 11:00ID:???理屈上は、EUC-JPオンリーな運用をすれば化けないはず。
でもそれは現実的な話では無いからなぁ…
0274名無しさん@お腹いっぱい。
02/02/24 05:50ID:IIwngiooログイン画面でユーザが入力したID、パスワードを照会するとき、
IDでSELECT ID, PASSWD ... みたいに引っ張ってきて、
そのPASSWDとPOSTに入ったパスワードをmd5で照会する、
この方法って無意味ですか?(セキュリティ上の観点で)
0276名無しさん@お腹いっぱい。
02/02/24 06:50ID:gC0AF2pI無意味。
DB内のパスワード見られたらクラックされる為。
ハッシュ化(MD5、DES)したパスワードを格納する。
質問の内容からして効率悪そうな開発をしているっぽいので、
crypt関数と、mod_auth_pgsql について調べることをおすすめ
する。
0277274
02/02/24 13:30ID:IIwngioo早速調べて入れてみました。
で、今さらなんですが、パスワードはphp以外の箇所(言語)でも使うため
仕様変更が難しいようです。
まあごく限られたネットワーク内での使用を考えてるので(外には出さない)、
それほどセキュアなシステムで無くても良いんですが、DBを暗号化せず
セキュリティを高める方法ってないでしょうか(SSL以外)。
0278名無しさん@お腹いっぱい。
02/02/24 18:08ID:L35l4mFfDBを暗号化というか、DB格納パスワードをハッシュ化。
> セキュリティを高める方法ってないでしょうか(SSL以外)。
無い。
0279名無しさん@お腹いっぱい。
02/02/24 19:44ID:1vBdeyQkときとか、どうやって元のパスワードを教えて上げるの?
パスワード設定し直すっていう方法が現実的かも知れないけど。
0280名無しさん@お腹いっぱい。
02/02/24 20:43ID:L35l4mFf当然、教えてあげない。
> パスワード設定し直すっていう方法が現実的かも知れないけど。
そうする。基本だよね?
0281名無しさん@お腹いっぱい。
02/02/26 00:31ID:EFcQI2qbPHP3-i18nでもPHP4.0.6以降でも、出力だけSJISってのができるから、それが一番
問題起きないんじゃない? 出力がEUC-JPだと文字化けするブラウザは結構あるし。
PHP,DB内部はEUC-JPで、HTTP入出力はSJISでずっとやってますが、大きな問題は
おきてないな。
0282名無しさん@お腹いっぱい。
02/02/26 01:58ID:myAGwwd4http://www.jlb.dyn.to/hsinstall/salsemng/
こんな感じで、みんなも、定期的に、バキュームしてる?
自分は、したことないぞーばきゅーむなんて。
0283名無しさん@お腹いっぱい。
02/02/26 02:19ID:R0qwrTORhttp://ime.nu/www.baseball-lover.com
0284名無しさん@お腹いっぱい。
02/02/26 02:24ID:c48zyladinterval型を使って年-日-時でデータを管理しているのですが、
365日で1年への繰り上がりを期待したら、
どうやら360日で繰り上がってます。
繰り上がり日数の指定ってできないのでしょうか?
0285名無しさん@お腹いっぱい。
02/02/26 15:19ID:ws1pgQhyMIMEヘッダーに文字コードをつければ化けない。
HTMLファイルにも、httpd.conf や .htaccess に AddType を
加える事で可能。
0286
02/03/24 17:12ID:S817rdf9教えていただきたいことがあります。
それは、このシステムで出力されるデータをPDFファイルにしたいのですが、
これを実現するためには、PHPをインストールする際にpdflibを使用する旨の
オプションを指定する必要があることは知っています。
ただ、現在はインストールした後ですので、後でpdflibを追加することは
可能ですか?厨房なので、詳しい方法を教えてくれませんか?よろしくお願いします。
0287nobodyさん
02/03/25 01:50ID:hKhhq3k3コンパイル時に組み込むものだから、後からは無理だと思われ。
リコンパイルする手間はそんなに無いと思うので、やり直しをおすすめ。
> 厨房なので
DBシステム開発自体を辞めておけ。
0288nobodyさん
02/07/31 14:56ID:???皆さん入れ替えましたか?
0289nobodyさん
02/07/31 16:33ID:???http://freehome.kakiko.com/tuk/iiyo.html
0290nobodyさん
02/09/01 20:10ID:h2ERcGeKとりあえずあげ。
0291b
02/09/01 20:21ID:hC+cV5mq0292お役立ちサイトです。
02/09/01 23:25ID:eeJda9o6http://home9.highway.ne.jp/cym10262/
0293ノンノン
02/09/28 21:30ID:Mv9w8xYv$sql = "select to_char(nichiji, 'YYYY/MM/DD') from テーブル名";
$result = pg_exec($sql);
で、良いと思うのですが、
Warning: PostgreSQL query failed: ERROR: No such function
'to_char' with the specified attributes
っていうエラーが出ます。
これって、to_charが使えないってことですか?
仮に to_char が使えない場合、どうやればいいのでしょうか?
どなたかご教授願います。
0294nobodyさん
02/09/28 21:38ID:B9guHGNW引っぱり出してから整形してください
0295hmk
02/09/28 21:39ID:???0296ノンノン
02/09/28 21:59ID:Mv9w8xYvそれは間違いないです。ハイ。
> 整形してから引っぱり出すんじゃなくて
> 引っぱり出してから整形してください
あいたたぁ。そういうやり方がありましたね。(なんて私は頭がカタイのか)
とすると、取り出したものが $nichiji に入ってるとすると
local($nichiji);
なんてものを使えば良いのでしょうか?
0297294 じゃないよ
02/09/28 22:17ID:???EXTRACT(YEAR FROM nichiji) AS nchj_y,
...
みたいに SQL を書くという意味ではないかな。ちょっ
と手間は増えるけど、漏れはいつもこうしてる。
0298ノンノン
02/09/29 13:23ID:lz5l3CdA実行するということですね。
で、試してみました。
・・・結果はだめでした。
なので、簡単に
select extract(YEAR from TIMESTAMP '2002-09-29')
としてやってみました。
・・・、これもダメでした。PHP を使ってもコマンドラインからも
結果は同じです。どちらも、こういうエラーが出ます。
ERROR: Function 'date_part(text, timestamp)' does not exist
Unable to identify a function which satisfies the given argument
types You will have to retype your query using explicit typecasts
何が原因なんでしょうか? PostgreSQLのバージョン?
ちなみにそのバージョンは、6.5.3 です。
0299297
02/09/29 13:49ID:???7.0.2 なら select extract(YEAR from TIMESTAMP '2002-09-29')
は OK だね。6.5.3 だとダメ。
6.5.3 なら、
select extract(YEAR from DATETIME '2002-09-29')
で OK だけど、DATETIME は標準じゃないし、最近は
Postgres でも推奨されていないと思う。
0300ノンノン
02/09/29 14:05ID:lz5l3CdAということは、to_char でエラーが出るのもパージョンのせいですね。
レンタルサーバなのでどうにもできません。
フィールドのタイプを変えるしかないないですね。
原因が分かっただけでも良かったです。
みなさん、ありがとうございました。
また、何かあれば願いしますね。
0302やりたいのに
02/10/02 19:31ID:???PHP+PostgreSQLの勉強をしようと頑張ってますが入り口にすら立てません・・・。
とりあえず簡単なWebアプリケーションを作成しようとしてます。
<Webサーバ環境>
Win2KServer + PHP4.2.3 + Cygwin + PostgreSQL7.2.2(Cygwinと共にインストール)
pg_connect() を使うと
Warning: pg_connect() unable to connect to PostgreSQL server: could not create socket:
要求したプロトコルと互換性がないアドレスを使用しました。 (0x0000273F)
が発生して接続ができません。
使い方はどこにでもサンプルで書いてあるような
$con = pg_connect("dbname=testdb");
という形なんですが・・・これは PHP の設定なのか PostgreSQL の設定なのか
はたまた Cygwin の設定なのか Windows の設定なのか
検討がつきません。
3日悩んだあげく、ODBC経由ならどうよ?と試したらあっさり成功。
# pg_databaseからテーブル一覧取得表示
pg_ほにゃほにゃ系の関数を使う為には何をどう設定すればいいのかひたすら調査中です。
どなたか「おい、ここチェックしたのか」とか思い当たる事項があれば
突っ込んで下さると非常に喜びます(涙)
0303nobodyさん
02/10/03 06:22ID:???0304nobodyさん
02/10/03 06:33ID:???WindowsってUNIXドメインソケット使えないよね?
としたら、PHP<->PostgreSQLの接続はTCP/IP使わなきゃいけないはずなので、
pg_connect("host=localhost dbname=testdb");
みたいにして、あとは PostgreSQL の pg_hba.conf で
localhost からの接続の認証してやればいけそうな気がするが。
0305nobodyさん
02/10/03 06:34ID:???pg_connect()したときにエラーメッセージ出るだろ。
0306nobodyさん
02/10/03 06:38ID:???0307やりたいのに
02/10/03 11:24ID:???>>303
その環境で構築する本は一応見てみましたが、どーも・・・。
Cygwin上に更にApache入れる?それともWin用のApache入れるのかなぁとか
昨日ふと思ったりしましたが・・・IISでPHPもPostgreSQLも両方動くのに
意味なさ過ぎだなぁ・・・とか(苦笑)
>>304
> としたら、PHP<->PostgreSQLの接続はTCP/IP使わなきゃいけないはずなので、
ですよね。
これに関してですが、わからないなりに調べた結果、以下の点は留意しました。
・Postmaster起動時に-iオプションを付ける。ポートも指定してみる。
=> pg_ctl -w -o "-i -D /usr/share/postgresql/data -p 5432" start
・pg_hba.confの設定をチェック
=>以下の設定になっていた。これで問題なし??
local all trust
host all 127.0.0.1 255.255.255.255 trust
・postgreSQL側でも接続を有効にしてみる。
=>postgresql.confで以下のように設定
tcpic socket = true
port = 5432
> pg_connect("host=localhost dbname=testdb");
なるほど、ローカルホストだぜ!って明示的に指定するわけですね。
早速やってみます!ありがとうございました。
0308nobodyさん
02/10/03 19:35ID:???0309nobodyさん
02/10/03 22:37ID:yBxgrv2Tバキュームしれ。
7.2.1使って12万レコード/日くらいのトランザクションがあるけど、
結構ディスク占有率がふくれる(溜めるだけではないため)。
数万レコードでも更新が多いならお薦めだ > 使っているdata/base
#ちなみに vacuum full 実行10分ちょい > 漏れの仕事環境
vacuume or vacuume full は頼りになるぞ。
そんな漏れん家のサーバは1回/半年で十分だ。数秒で終わる(w
0310307
02/10/04 14:40ID:qOvfKv6+つながりました!Apacheは入れなくてもよかったです。
これまでCygwinを手動で起動して、その上でipc-daemonをサービス起動して
次にpg_ctlでPostmasterを起動して・・・とやってたんですが
cygrunsrvというコマンドでPostmasterもサービス登録する手順をみつけ
やってみたところ、突然つながりました!
接続は以下のように行いました。ユーザも何もかも指定しました(笑)
$con = pg_connect("dbname=testdb host=localhost user=test_user password=test_user");
Postmasterの登録に使用したコマンドは以下のものです(本当は1行です)
$ cygrunsrv --install PostgreSQL
--path /usr/bin/postmaster
--args "-D /usr/share/postgresql/data -i"
--dep ipc-daemon
--termsig INT
--user postgres
--shutdown
これで、試験サーバを起動してから一々ipc-daemon+Postmasterを手動で
起動する手間もかかりませんし、いい感じです。
ただ・・・Postmasterのみ再起動する方法がわからないんですよね。
pg_hba.confとかその辺を更新した後、サーバごと再起動しないと駄目という
実に非現実的な環境になってしまいました(爆)
でもまぁ、大きく一歩前進です。多分何か方法があるんでしょうし
設定とかあるのかもしれません。調べていくことにします。
多謝多謝、多謝です〜!
0311nobodyさん
02/10/06 21:27ID:Y+aKD2A2xreaでPostgreSQLつかってるんですが
$hst = "localhost";
$db = "ユーザID";
$us = "ユーザID";
$pass = "パスワード";
$conn = pg_connect("host=$hst dbname=$db user=$us password=$pass") or die("接続エラー");
ってやると
Warning: pg_connect() unable to connect to PostgreSQL server: PQconnectPoll() -- connect() failed:
Connection refused Is the postmaster running (with -i) at 'localhost' and accepting connections on TCP/IP port 5432?
っていわれちゃうんだけど、解決方法わからないですか?
自分のパソコン上でやるとできるのですががが。
0312nobodyさん
02/10/07 01:33ID:hvZZAVT1まんまやん!
-i と一緒に走らせろよ。
pg_ctl stop
pg_ctl start -o "-i"
だな
0313312
02/10/07 01:37ID:hvZZAVT1DBが別サーバなら pg_hba.conf の一番下辺りの trust あたりを見る。
んで、適時追加する(アクセスするサーバへの許可)。
↑の起動オプションの追加やconfの変更が出来ないんならわからん!
0314nobodyさん
02/10/07 08:25ID:tYSAfVj4ふつーはUNIXドメインソケットで接続するんちゃうやろか。
-i オプションつけずに動かして。
なので、「host=$hst」つーのはいらないのでは?
0315312
02/10/08 00:18ID:OGtZEEu6つ〜か、「自分のパソコン上でやるとできるのですががが。」だそ?
隣のパソコンにつなごうとしてうまくいかないのでは? と思うぞ...ふつ〜は。
っで、隣のパソコンから己(311)のIPがipfwとかipchainsとかから
deny|dropされていない事は確かだろうな?(w IPだけじゃなくportも...
そんなんされてたら、どうにもできんが(www
0316312
02/10/08 00:19ID:OGtZEEu6隣のパソコン≠localhost ぢゃないか!!(w
逝ってくる...
0317nobodyさん
02/10/09 01:18ID:LBei1JgWPHPから、postgresへデータを書き込む時は、どうしたらよいのでしょうか?
今、POSTされたデータを使って、
こんな感じの関数を使って、文字をEUCにして、DBに入れてます
でも、うまくいかないんです......動くんだけど
特定の文字の時、
ここから-----------------
――――――――――――――――――――――――――――――――0-5/10―
★GAME
-------------ここまで
を入れると、0移行がきれてしまって、DBに入るんです...
0移行もいれたい!でも、うまくいかない...
なぜ?
Function beauty($sSQL)
{
//文字をEUCにして綺麗にして
$sSQL=trim(mb_convert_encoding($sSQL,"EUC","SJIS"));
$sSQL=mb_convert_kana($sSQL);
//改行キーを綺麗にして
$sSQL=str_replace("\r\n", "\n",$sSQL);
$sSQL=str_replace("\r", "\n",$sSQL);
$sSQL=ereg_replace("^(\n)+|(\n)+$","",$sSQL);
//スラッシュを綺麗にして
$sSQL=addslashes(stripslashes(stripslashes($sSQL)));
//実行
return $sSQL;
}
0318nobodyさん
02/10/09 02:48ID:uMeBQ3Ig0319nobodyさん
02/10/09 07:54ID:???0320nobodyさん
02/10/16 17:38ID:???phpPgAdmin 2.4.2 を動かそうとしたんですが、フォーム入力で
なぜか先頭の4文字分が消えてしまってSQLクエリが組み立てられず
エラーになってしまいます。
PHPは --enable-mbstring --enable-mbstr-enc-trans
--enable-mbregex で configure してあり、通常のPHPでのフォーム入力
受け渡しでは問題ないのですが、phpPgAdminのPHPスクリプトが
何か特殊なことをしているのでしょうか?
0321質問ageです
02/10/22 10:45ID:38ZRylkG$db = DB::connect();
$res = $db->query();
$db->disconnect();
とするのが普通なのでしょうか?
DB オブジェクト $db をグローバル変数として
他のページでアクセスする方法はあるのでしょうか。
0322nobodyさん
02/10/22 10:47ID:???普通。けど、ココはPHPのスレ。
0323nobodyさん
02/10/22 11:08ID:???ええ。PHPスレと知ってて質問しています。
PHP-4.2.2 を使用してます。
PHPでグローバル変数は扱えるのかな? と思って質問しました。
現在、最初に postgres の user、password を入力させて
それを各ページに POST して使い回して connect しているんですが
みなさん、このようにして使っているのでしょうか。
0324nobodyさん
02/10/22 12:38ID:4eylDja6session利用して保持すれば?
0325nobodyさん
02/10/22 15:18ID:???0326321
02/10/22 16:15ID:???そうですね。
各ページで connect を行う場合はそうします。
ただ、DBオブジェクト(今回は Class のオブジェクト)を
グローバル化出来れば便利(早い) だと感じたのですが、
皆さんそのようには作られてないようで...
何か、問題あるのかな?
もうちょっと、色々勉強してみます。
0327nobodyさん
02/10/22 16:43ID:???>>325が自信なさげにつぶやいてるけど
http://www.php.net/manual/ja/features.persistent-connections.php
じゃ駄目なのかと?
0328321
02/10/22 17:21ID:???ごめんです。
別に無視していた訳ではないです。>>325 さん。
今 Class と PEAR を使って色々勉強中でして、
「こんな風に出来ないものか?」と試行錯誤してます。
pg_pconnect は DB::connect( $dsn, TRUE ) で実現
出来るようです。
色々試してみたいと思います。
0329nobodyさん
02/10/22 20:50ID:bCdHvFBvDBへの接続で、パーシステントな香具師が居たかと...
「永続的接続」だっけか?
ただし、トランザクションエラーでcommitもrollbackもやってなくて
ロック状態に陥る罠。
つ〜か、↑は、デバッグ時にはまった場合の話ね。
きれいになったコードでは問題ないはずだよ。
0330教えて君
02/10/30 20:04ID:???最初にconnectしてから
"begin"を宣言しておいた後、
放置してPHP終了した場合って、
"commit"しなかったんだから"rollback"しなくても良いんですよね?
pg_closeは省略できるらしいし。
どうなの?
0331330
02/10/30 20:05ID:???0332nobodyさん
02/10/30 20:11ID:CX80yU9D2重カキコじゃないってば!!>ERRORさん
rollbackは今までの作業を捨ててその後で新しく作業するのに使うんですよね?
取消で終了するなら言わなくてもいいっすよね?
0333330
02/10/30 20:12ID:CX80yU9D俺です(鬱)
0334330
02/10/30 20:20ID:CX80yU9D> BEGINで始まり、 そのトランザクションが有効な場合はCOMMITまたは ENDで終わります。
> トランザクションが失敗した場合、 そのトランザクションはROLLBACKまたは ABORTにより閉じる必要があります。
> ラージオブジェクトリソースを閉じる前に接続リソースを閉じないように して下さい。
エラーでこけたらどうなるんすか?
0335329
02/10/30 21:02ID:6KbHJvYgそのつもりで漏れも
>ただし、トランザクションエラーでcommitもrollbackもやってなくて
>ロック状態に陥る罠。
つ〜て書いてやった訳なんだが、
「早い」事だけを求めてトランザクションのなんたるかを
全く判っていない >>330 には、無駄だったんだと改めてわかったよ。
「永続的接続(パーシステント・コネクト)」と「トランザクション」の共存くらい
勉強&理解して欲しいよなぁ...
Oracleだろうが、DB2だb�、が、MySQLだろうが、PostgeSQLだろうが、
何れは陥る罠だぞ。
漏れは無視していいが、「永続的接続」と「トランザクション処理」を
もう一度根っこから調べてくれ(;´Д`) >> 330
頼む!
0336山崎渉
03/01/15 13:47ID:???0337nobodyさん
03/01/18 03:13ID:bdZI9lM1PHPとPostgreSQLの接続がうまくいきません。
PHPの動作確認はOKでした。
PostgreSQLの方もcreateuserで作成したuserにてpsqlを行えます。
どこかのHPを参考にしてnobodyのユーザーを作り
テスト用のphpをたたくと
Warning: pg_connect() unable to connect to PostgreSQL server: FATAL 1: IDENT authentication failed for user "ifuku" in /home/test/public_html/test.php on line 14
といったメッセージがでます。
php.iniかpg_hba.confの設定をしないといけないのかな?と思いましたが、
なにか参考になる話を聞かせてくれませんか?
0338337
03/01/18 03:15ID:bdZI9lM1他のuserを使ったりはしています。
0341nobodyさん
03/02/26 18:10ID:???a 102
b 2003
aとbでキー
そういう場合は
c 1002-2003
というカラムを作った方がいいですか?
0342nobodyさん
03/02/28 12:52ID:Gr9BwE/o勉強し直してきてください
0343nobodyさん
03/02/28 19:20ID:qSGW/gfl☆^〜^★【新着情報追加】
http://sagatoku.fc2web.com/
あなたの探し物こちらで見つかります
0344nobodyさん
03/03/07 14:00ID:ZFWCWq3ylo_unlinkを使用する箇所でエラーと言われました。
もちろん使用しなければエラーと言われません。
動作的に使用しなくても問題はないように思えます。
同じ症状になった人居ますか?
「環境」
Red Hat Linux 7.2
PostgreSQL7.3.2
php-4.2.3
apache_1.3.27
0345山崎渉
03/03/13 17:07ID:???0346nobodyさん
03/03/17 18:15ID:RRSo0s2u引っ張ってくる場合、
SELECT * FROM テーブル名 LIMIT 10 OFFSET (最終行数 - 10)
になると思うんすけど、この最終行数ってどうやって求めるのか?
$sql = "SELECT * FROM テーブル名";
$db = pg_exec($sql);
$maxnum = pg_numrows($db);
で、いの?
いや、ダメだろうなぁ。なんかもったいないし?
0347nobodyさん
03/03/17 18:57ID:UoxJY4S2昇順になってるカラムはないの。
あればそのカラムで逆順にソートして最初の10行を取得する。
0348nobodyさん
03/03/17 19:34ID:RRSo0s2uあります。
>あればそのカラムで逆順にソートして最初の10行を取得する。
なるほどぉ。。。。と言いつつ良くわかってない初心者です。
ORDER BYっての使うのか?。
要はページに最新のデータから10件ずつ表示させていくヤツが
作りたいのです。
0349346/348
03/03/17 20:14ID:RRSo0s2uSELECT * FROM テーブル名 ORDER BY (昇順カラム) DESC LIMIT 10 OFFSET 0
ですね。サンクスです。
0350346
03/03/18 12:18ID:frl1VUIPそん時は莫大なメモリを食いそうな(あくまで漏れの稚拙なイ
メージなんだけど)
$sql = "SELECT * FROM テーブル名";
$db = pg_exec($sql);
$maxnum = pg_numrows($db);
なんて事をせにゃならんのだろうか?
あと、JOINってどんな時に使うの?
0352346
03/03/18 14:44ID:frl1VUIPサンクスでし。
SELECT COUNT(カラム名) FROM テーブル名
でしね。できますた。
シーラカンス本もマンモス本も持ってます。しかし、まだ敷居が
高すぎます。COUNTについて書いてあるのなんて1ページのほんの
少しでし。
JOINわかんねぇ。つまりテーブルを結合しる・・・と。
ブツブツ・・・。
0353nobodyさん
03/03/18 16:07ID:iRf6zAa00355nobodyさん
03/03/22 15:32ID:???教えて下さい。たのんまっす!
no int, hougaku varchar
テーブル名 hoge
no|hougaku
--|------
10|higasi
20|nisi
30|minami
40|kita
こんなテーブルがあったとします。
$houi = "kita"←仮にテーブルにある文字を設定します。
$sql = "select hougaku from hoge where hougaku = 'houi' ;";
$result = pg_query($sql) ;
if num_rows($result) !=1{
print ("そんな方角はありません。") ;
}
ここまで、$houi に代入された文字がテーブルに有るか無いか分かると思います
もしここで正しく$houiにkitaという文字がセットされたとしたら
noの40という数字が導きたいのだがどうしたらいいかわかりません、
続きのプログラムはどう書いていいのか分かりません、教えて下さい。
0356gn355my0
03/03/22 15:47ID:???じゃダメなん?
0357nobodyさん
03/03/22 15:59ID:jxh1CrBXとりあえず、$が抜けている。
$sql = "select hougaku from hoge where hougaku = '$houi' ;";
で、noも取得するなら、
$sql = "select no,hougaku from hoge where hougaku = '$houi' ;";
あとは、
$result = pg_query($sql) ;
if num_rows($result) !=1{
print ("そんな方角はありません。") ;
}else{
$arr=pg_fetch_array($result);
echo $arr["no"];
となる。
その後、何をやりたいのかわからんので、適当に追加したのだが、
これだけのことなら無駄が多いよ。
0359nobodyさん
03/03/22 16:22ID:???できましたありがとう
0360nobodyさん
03/03/25 22:15ID:8MjhOhZv結果を変数にぶち込みたいんだけど
$結果 = $db->selectrow_array("SQL文");
みたいに1行で片付けたい。
PHPだとどうすればいいんかな?
良くわからんのでとりあえず
$rs = pg_query($con, "SQL文");
$結果 = pg_fetch_result($rs,0,0);
にしてるんだけど何か変な気がするし。
昨日PHPはじめた漏れに誰か教えてクレイ。
■ このスレッドは過去ログ倉庫に格納されています