[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 07/23 13:23 / Filesize : 258 KB / Number-of Response : 780
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

PHP + PostgreSQL



1 名前:りさあ [ 2001/02/26(月) 04:20 ID:7I8PBOt. ]
語りません?

592 名前:nobodyさん mailto:sage [04/03/06 18:59 ID:???]
>>591
テーブル構造カモーンΨ(゜∀゜)Ψ

593 名前:nobodyさん mailto:sage [04/03/06 19:07 ID:???]
>>591
> 実際にpg_queryに渡しているのは、
> INSERT INTO date VALUES ('2004-03-06 00:00:00')
> です。
ほんとか?

594 名前:nobodyさん mailto:sage [04/03/06 20:12 ID:???]
>>592
失礼しました。テーブル構造です。
sql_test=# \d date
Table "public.date"
Column | Type | Modifiers
--------+-----------------------------+-----------
date | timestamp without time zone |

>>593
pg_queryに渡した変数をそのまま変数で書き出してペーストしたので間違っていないかと思います。
問題点を明確にする為にTIMESTAMP部分を抜き出して下記のような感じでテストしています。
現在手元にSolarisをいじれる環境がないので、アドバイス結果をすぐには試せないのですが、
RedHatの鯖ではこれで問題なく動きました。
Solarisの鯖では何故か>>591のようなエラーが。。。

<?php
$inc_pg['sql_query'] = "INSERT INTO date VALUES ('" . $_POST['fdate'] . "')";

$string = 'dbname=sql_test';
$db['handle'] = pg_connect ($conn);

$pg['exec_id'] = pg_query ($db['handle'], $pg['sql_query']);

pg_close ($db['handle']);

print 'sql =>' . $pg['sql_query'];

?>

足りない情報がありましたら出せるだけ出しますので、よろしくおねがいします。

595 名前:586 mailto:sage [04/03/06 20:16 ID:???]
>>594
スクリプトで一部間違ってました。

>$string = 'dbname=sql_test';
>$db['handle'] = pg_connect ($conn);
-----
$conn = 'dbname=sql_test';
$db['handle'] = pg_connect ($conn);


596 名前:586 mailto:sage [04/03/06 20:20 ID:???]
訂正をなんどもすみません。

>$inc_pg['sql_query'] = "INSERT INTO date VALUES ('" . $_POST['fdate'] . "')";
-----
$pg['sql_query'] = "INSERT INTO date VALUES ('" . $_POST['fdate'] . "')";


597 名前:nobodyさん mailto:sage [04/03/06 21:53 ID:???]
SQLインジェクションが非常に気になるが、それは置いといて、

pgsqlのバージョンは、select version(); で確認できる。
phpもpnpinfo();でわかる。

で、ひょっとしたらYMDじゃなくて、MDYに設定されているのかも?
確認方法があったと思うが失念。
'03/06/2004 00:00:00'でやるとどうなるかな。

598 名前:586 mailto:sage [04/03/06 23:54 ID:???]
>>597
アドバイスありがとうございます。
SQLインジェクションについてはまだ考えてません。
それはおいおい学習していきたいと思います。

バージョン情報の確認とMDY形式の入力を試してみたいと思います。

599 名前:nobodyさん mailto:sage [04/03/07 17:08 ID:???]
show DateStyle; とか
でもどっちで明らかな奴は自動で判別するけどな

600 名前:nobodyさん mailto:sage [04/03/08 04:17 ID:???]
>>498

Mac OS X 10.2.8,PostgreSQL 7.4.1,PHP 4.3.4で
全てソースをコンパイルして環境を作っていたんですが、
同じ現象に悩まされました。
ただ、

ld: unknown flag: -export-symbols

なわけだから、

Makefile の該当行でそのフラグを指定してる箇所を削って
次のようにしたら make は成功しました。

EXTRA_LDFLAGS = -L/usr/local/pgsql/lib




601 名前:nobodyさん mailto:sage [04/03/08 04:18 ID:???]
>>497 だったみたい

602 名前:586 mailto:sage [04/03/08 21:02 ID:???]
Solaris鯖はPostgresは7.1とPHP4.3.1でした。
それで'03/06/2004 00:00:00'の形式で入力しましたら無事にDBに登録されました。
アドバイス、本当にありがとうございました。
これで次に進めます。

603 名前:S.N [04/03/11 20:48 ID:Gs6PweG/]
春日井市の方にある藤山台幼稚園の園長先生の名前を知ってる方いらっしゃいませんか?
知ってたら教えて下さい。宜しくお願いします。

604 名前:nobodyさん [04/03/13 01:00 ID:36IkPElZ]
Linux+PostgreSQL7.3+PHP4.3.1での話なんですが
同環境の鯖からpg_dumpallしたファイルを
psql -f しようとしたら
「\connect: FATAL 1: IDENT authentication failed for user "xxxx"」
と怒られてぐぐった結果
pg_hba.confのlocalをall trustにしたんですけどまだ同じ症状なんです。
他に権限設定するファイルってあったら教えてください。
あと自宅鯖ですがpg_hba.confのlocalをall trusって危険ですか?


605 名前:ネットdeDVD(・∀・)♪ ◆uRDVDsgexc mailto:sage [04/03/13 01:06 ID:???]
PHPってすごいんですね・・・

606 名前:nobodyさん mailto:sage [04/03/14 14:23 ID:???]
>>604
よくわからんけど、ラージオブジェクトは使ってる?
pg_dumpall -g > "filename"
で、グローバルデータのバックアップはやった?

607 名前:nobodyさん [04/03/15 11:56 ID:u5uDbosW]
>>606
ラージオブジェクトは使ってないんです、
オプションは-fだけ付けてダンプでした…、
もう一度新鯖の方、DB初期化からやり直してみるカナ…。

608 名前:nobodyさん mailto:sage [04/03/15 13:16 ID:???]
ml.postgresql.jp/pipermail/pgsql-jp/2002-September/002592.html

609 名前:nobodyさん [04/03/16 03:09 ID:0I5atoz5]
>>608
すいません、initdbしちゃいました。
(そしたらあっさり動きました!)
今回のトラブル中でgoogle引いているなかで一つ気になったのが
hba.confでのlocalの設定の書き方なんですが、
どこだか忘れましたがあるサイトで
local  all  all  trust
ってー書き方しているページがあったんですが
ml.postgresql.jp/pipermail/pgsql-jp/2002-September/002592.html
とかオンラインマニュアルなんかは
local  all  trust
ですよね?
見間違えかナア?

610 名前:nobodyさん [04/03/16 03:10 ID:0I5atoz5]
失礼、お礼を書き忘れた!!
606さん
608さん
どうもありがとうございました!



611 名前:nobodyさん mailto:sage [04/03/16 08:31 ID:???]
>>609
7.3あたりで 項目が増えたんじゃなかったかな?
changesを見てマジっすかって思った記憶があるよ。

612 名前:nobodyさん [04/03/18 05:39 ID:zQ2yHGPu]
>>611


pg_hba.conf の詳細は、PostgreSQL のドキュメントの 6.1. The pg_hba.conf fileにあります。



セカンダリパスワードが廃止されました。
USER カラムが追加されました。
データベースとユーザをカンマ区切りで列挙できるようになりました。 また、+グループ名でグループを、 @ファイル名でデータベース名またはユーザ名を記述したファイルを指定できるようになりました。
キーワードsamegroupが追加されました。

だそうです。
www.us.postgresql.org/users-lounge/docs/7.3/postgres/client-authentication.html

613 名前:nobodyさん mailto:sage [04/03/20 09:22 ID:???]
PHPもPostgreSQLも今日から挑戦してみる新参者です。

┌─┬─┬─┐
│○│△│×│
├─┼─┼─┤
│◎│□│◇│
└─┴─┴─┘
TABLEを用いてDBの値を上記のように表記したいのですが
PHPとPostgreSQLの組み合わせの定石などありますでしょうか。

PHP変数のスコープ範囲をグローバルとして確保するなら
SQLから変数へ一度に値を確保しておいて
<TABLE><TR><TD><?echo $変数1?></TD><TD><?echo $変数2?></TD>......
などとできそうかなと考えたのですけれど、下策でしょうか。


614 名前:nobodyさん mailto:sage [04/03/20 10:06 ID:???]
>>613
プログラミングそのものが始めてというならそれでも構わんが、
とりあえずやって慣れないとな。

次ステップとして、foreach文でループしながら書き出す。
その次は、PEARのHTML_Tableを使って書き出す。
また、その次はテンプレートを使って書き出す。

手法はいろいろあるから、技術レベルとサイトの規模に合わせて
使い分けすりゃいいべ。

615 名前:nobodyさん mailto:sage [04/03/20 11:25 ID:???]
>614
つまり各個別で変数をひとつずつ出力するよりも
タグまで出力することを一区切りとして実装した方が
負荷が少ないということになるのですね。

テンプレートは自分でクラスを作ればいいということでしょうか。
HTML_Tableは<TBODY>や<COL>要素が出力されないようなので
自分で作ってみようと思います。
ありがとうございました。


616 名前:nobodyさん [04/03/22 16:39 ID:QoPkBfoi]
webから入力されたe_mailアドレスをDBに貯めておいてcronで一定時に
配信するプログラムを作ろうと思ったんですがそのcronで呼ばれる方のphpは
コマンドライン版(プログラムの頭に#/×××/×××/php とか付く奴)にあたると思うんですが
デバグ時にコンソールから直で呼び出した時にエラーをモニタにだしたいんですが
なにかオプション付けて実行とかどなたかご存知でしょうか?

617 名前:nobodyさん mailto:sage [04/03/22 17:05 ID:???]
>>616
PHPのマニュアルの PHPをコマンドラインから使用する を見てみれ。

618 名前:616 [04/03/23 04:32 ID:PH/L9hMF]
>>617さん
#!/usr/bin/php -qを頭につけて
クーロンと直接実行と両方試したんですが
エラーもはかずに配信もされないんですが
コマンドライン版特有のデバグ方法等ありましたら
url等情報頂けたらありがたいです。

619 名前:nobodyさん mailto:sage [04/03/23 05:59 ID:???]
>>618
617ではないが、
MTAのログは?

620 名前:616 [04/03/23 18:38 ID:zP9z4yZ0]
>>619
/var/log/mail_logには一切メールを送った形跡なし…。
何故エラーすら吐かないんだろう?



621 名前:nobodyさん mailto:sage [04/03/23 19:03 ID:???]
>>620
メール送信処理のかわりにファイル作成してみるとか
そのファイルに変数の値とか出力したらいろいろわかる可能性も

622 名前:616 [04/03/23 20:48 ID:zP9z4yZ0]
>>621
ドモです、さっそくやってみます。


623 名前:nobodyさん [04/04/06 12:05 ID:irRO9IOr]
質問です。。。

Postgresのビット演算についてお力をお貸しください。
text_a varchar(5) と宣言してある所に 00110 の文字列が入っています。
それに対して 00010 の文字列で&演算したいのですが、エラーになってしまいます。

■エラーが出た部分(一部抜粋)
WHERE ( CAST( text_a AS bit ) & B’00010’ ) > B’00000’

■エラー文
varchar から bitへの変換ができないといわれます。
何かこれを回避する方法または別の手段が無いでしょうか?
お力をお貸しください。


624 名前:nobodyさん mailto:sage [04/04/06 13:28 ID:???]
>>623
ビット型に変換しなくとも。
WHERE (text_a::int & '00010'::int) > 0
で、目的は達成すると思われ。


625 名前:623 mailto:sage [04/04/06 14:36 ID:???]
>>624
アドバイスありがとうございます。
早速やってみます!

626 名前:623 [04/04/06 14:48 ID:irRO9IOr]
>>624
結果報告です。
ERROR: Cannot cast type 'varchar' to 'int4'
でダメでした。とほほ

627 名前:624 mailto:sage [04/04/07 16:53 ID:???]
text 型からint型にはキャスト出来たので、Varchar型も出来ると思っていた。

(text_a::text::int & '00010'::int) > 0
ならどぉよ。

628 名前:623 mailto:sage [04/04/07 19:14 ID:???]
>>627
できました!
::text::int 2重に変換できるんですね。
勉強になりました、ありがとうございました。

629 名前:nobodyさん mailto:sage [04/04/07 22:11 ID:???]
ダウンキャストなのかコンバートなのか分からなくなってくるな。

630 名前:nobodyさん [04/04/18 00:22 ID:jle0qDKt]
DBサーバとWebサーバを物理的に同一の
マシンで兼用させることは出来るのでしょうか?
その場合IPが一緒になると思うのですが試したことのある方がいたら
教えてください。

ハードディスクを2つのパーティションに切って、片方をDBサーバ
OS:Linux
DB:Postgres
もう片方をWebサーバにしようと考えています。
OS:Win系
HTML、PHPで携帯サイトもどきを作ろうと考えています。

資金の都合があり、一台のPCで済ませようとしているのですが
根本的にありえない質問でしたらお許しください。
実際のサイトではまずありえない環境なのはわかっています。
他サイトを調べたのですが情報を得ることが出来ませんでした。
最後に来たのがここなわけで・・・。



631 名前:nobodyさん mailto:sage [04/04/18 00:25 ID:???]
>>630
>実際のサイトではまずありえない環境なのはわかっています。
おいおい

632 名前:nobodyさん mailto:sage [04/04/18 00:42 ID:???]
>>630
なぜDBとWeb両方Linuxで動かさないんだ?

633 名前:nobodyさん [04/04/18 00:49 ID:gbPENzjB]
( ゚д゚)ポカーン

634 名前:nobodyさん mailto:sage [04/04/18 00:50 ID:???]
>>630
うるさいよマルチ野郎
pc5.2ch.net/test/read.cgi/hp/1082203621/17

635 名前:630 [04/04/18 01:32 ID:jle0qDKt]
>>634
すみません。ルール違反と知りつつもマルチしてしまいました。

>>632
仕事でやっている環境に合わせて勉強したかったもので。

>>631
説明不足でした。すみません。
公式サイト等ではサーバー負荷を考慮してDBとWebサーバを
別々にするので、ほとんど無いという意味で書き込みしました。
非公式サイトの開発・運用経験をお持ちの方ならやり方を
知っているのではないかと思い質問させてもらいました。

634のリンクさきのスレに書き込んでいただいた方のおかげで、
なんとか出来るかもしれないことがわかりましたので、
今色々と調べています。

636 名前:nobodyさん mailto:sage [04/04/18 01:41 ID:???]
>>635
PC初心者板へ行ってくださいな。
そして「2つのパーティションに別々のOSを入れて同時に走らせたい」と言うんだよ。

637 名前:nobodyさん [04/04/18 02:54 ID:XCZiYJqw]
「札」という文字をテーブルに入れようとすると
次のようなエラーが出ます

Warning: pg_query(): Query failed: ERROR: invalid byte sequence for encoding "EUC_JP": 0x8e44

どうすればよいのでしょうか?

638 名前:nobodyさん mailto:sage [04/04/18 04:06 ID:???]
「札」が8E44になるのはSJISの時でないのん?
そりゃDBも往生しまっせ

639 名前:nobodyさん mailto:sage [04/04/25 13:29 ID:???]
set client_encoding to 'sjis';


640 名前:nobodyさん [04/04/26 02:10 ID:WthorSeH]
>>639
それやったけど駄目でした・・・



641 名前:nobodyさん mailto:sage [04/04/27 23:01 ID:???]
mb_convert_encoding('札','EUC-JP','SJIS')すれ

642 名前:nobodyさん [04/04/28 01:20 ID:v4hgreAJ]
>>641
できました。
ありがとうございます。

643 名前:nobodyさん [04/05/01 13:52 ID:mFnw69ow]
ERROR: could not extend relation "hogehoge": No space left on device
HINT: Check free disk space.

ってエラーが出るのですが何が原因ですか?
サーバースペースは余ってる筈なんですけど、、、。

644 名前:nobodyさん [04/05/01 14:09 ID:jvss00O+]
PHPとCGIを同じファイルで使う事は可能ですか?

645 名前:nobodyさん [04/05/01 17:49 ID:wi9QOksv]
また難解な質問が来たな…。>644

とりあえず「可能」と答えておこう。
質問の意味がまったく分からないけど。


646 名前:nobodyさん mailto:sage [04/05/02 20:46 ID:???]
>>644
>>645
こういうことじゃない?
-hatena.cgi------------------------------
open(IN, "datafile.txt");
while ($xx = <IN>) { print $xx; }
close(IN);
<?php
$fp = fopen('write.txt', 'w');
fputs($fp, "****\n");
fclose($fp);
?>
----------------------------------------
だったら俺の知ってる限りでは無理

647 名前:nobodyさん mailto:sage [04/09/11 05:17:25 ID:???]
Postgresの配列型を、PHPの配列にする時どうしてる?
正規表現とかな?

648 名前:nobodyさん mailto:sage [04/09/11 05:24:59 ID:???]
{}取り除いて、,でexplode

649 名前:nobodyさん mailto:sage [04/09/11 13:54:57 ID:???]
>>648
{",", "}"}とかに対応できない悪寒

650 名前:nobodyさん mailto:sage [04/09/11 15:50:56 ID:???]
>>647-649
が解決できたら PostgreSQL の配列型は HTML のチェックボックスを
格納するのに使えそうだね。



651 名前:nobodyさん mailto:sage [04/09/11 18:00:56 ID:???]
>>649
再帰呼出を使えば出来るでしょ。

652 名前:651 mailto:sage [04/09/11 18:08:47 ID:???]
スマソ勘違いしてた。
デリミタと囲い子の問題ね。

653 名前:nobodyさん mailto:sage [04/09/11 18:15:03 ID:???]
>>651
多次元配列じゃなくて、特種文字の扱いが問題だと思うのですが・・・・。
preg_match_allやpreg_splitでも正しくパースするのは難しそう。
#PostgreSQLのソースにヒントがあるかな?
PEAR MDBのキャスト機能で配列型も変換してくれるようになったら嬉しいな。

654 名前:653 mailto:sage [04/09/11 18:16:21 ID:???]
ちょっと遅かった... orz

655 名前:651 mailto:sage [04/09/11 18:24:02 ID:???]
>>653
fgetcsvの第一引数が文字列であるような関数があれば可能なんだよな。

656 名前:653 mailto:sage [04/09/11 21:16:41 ID:???]
>>651
自分もそれ考えてた。
一次元の配列に限定すれば、両端の{}を削ったのを一時ファイルに書き出して
fgetcsvすれば","もうまく扱えるはずだけど、オーバーヘッドが大きいし
それ以前にそんなコード書きたくない。
fgetcsv自体がバギーかつ仕様がコロコロ代わってるのも困りもの。

一次元の配列で、数値しか格納しないという前提なら>>648でいけるし、
それだけでもけっこう使えるとは思う。

配列型を活かしたクエリを発行しないならserializeしてTEXT型で保存
→fetchしたデータをunserializeで十分なわけだけど。

657 名前:nobodyさん mailto:age [04/09/25 02:40:26 ID:???]
質問させてください
pl/pgsqlを触り始めたのですがエラーに悩まされております
下記のように引数にテーブル名をいれて動かそうとすると
エラーになってしまいます。テーブルの実名をそのまま入れた時は動きました。
うまく動かす方法はないでしょうか?
よろしくお願いします。


CREATE OR REPLACE FUNCTION test_function(text) RETURNS INTEGER AS '

DECLARE
IN_table_name ALIAS FOR $1;
data_cnt INTEGER DEFAULT 0;
rec RECORD;
BEGIN

FOR rec IN SELECT * FROM IN_table_name LOOP
data_cnt := data_cnt + 1;
END LOOP;

RETURN data_cnt;
END;
'
LANGUAGE 'plpgsql';


658 名前:nobodyさん mailto:sage [04/09/25 03:12:19 ID:???]
>>657
CREATE OR REPLACE FUNCTION test_function(text) RETURNS INTEGER AS '

DECLARE
IN_table_name ALIAS FOR $1;
data_cnt INTEGER DEFAULT 0;
rec RECORD;
sql TEXT;
BEGIN
sql := ''SELECT * FROM ''||IN_table_name ;
FOR rec IN EXECUTE sql LOOP
data_cnt := data_cnt + 1;
END LOOP;

RETURN data_cnt;
END;
'
LANGUAGE 'plpgsql';

659 名前:nobodyさん mailto:sage [04/09/25 03:18:53 ID:???]
よくわかりました! ありがとうございます
早速試して見ます

660 名前:nobodyさん mailto:sage [04/10/12 21:01:41 ID:???]
わけあって
httpd.confのデフォルトキャラクタセットSHIFT_JISなのね。
postgreはもちEUCなんだけど
PHP使ってなんかするとき問題あっか?



661 名前:nobodyさん mailto:sage [04/10/26 03:37:10 ID:???]
SET client_encoding=SJIS;

662 名前:661 mailto:sage [04/10/26 03:40:51 ID:???]
寝ぼけてレスしたけど、よく見ると半月も前じゃん

663 名前:nobodyさん mailto:sage [04/10/26 15:42:23 ID:???]
わはは、なんかワロタ。

そもそもhttpd.confのDefaultCharsetとPostgreSQLのEncodingは全く関係ないし、
せめて気にするなら、PHPの内部コードと>>660の頭だな。

664 名前:ド素人 [04/11/23 11:23:13 ID:3+AQgTJt]
psqlで  \(バックスラシュ) をインサートしようとするとエラーになります。エンコードはEUC_JPなんですが、、、どうすればいいのでしょうか?


665 名前:ド素人 [04/11/23 11:36:12 ID:3+AQgTJt]
confのclient_encoding とかをEUC_JPとかにするんでしょうか?


666 名前:ド素人 [04/11/23 11:41:25 ID:3+AQgTJt]
寝ぼけて書いたけど、半月前の板じゃん、わはは。なんかワロタ。

667 名前:ド素人 [04/11/23 11:42:27 ID:3+AQgTJt]
とかい言いつつ、、レスを待ちつづける俺。
切羽詰ってたりして…

668 名前:nobodyさん mailto:sage [04/11/23 11:45:21 ID:???]
sql書け。

\を\\に置き換えてるか?

669 名前:ド素人 [04/11/23 11:45:43 ID:3+AQgTJt]
マジ、だずけでほじぃ。。。

670 名前:ド素人 [04/11/23 11:47:21 ID:3+AQgTJt]
\を\\にしても同じでした。。エスケープってことですよね?



671 名前:nobodyさん mailto:sage [04/11/23 11:50:13 ID:???]
insert table_name (hoge) values ('\\')

でinsert出来ない?

672 名前:nobodyさん mailto:sage [04/11/23 11:50:49 ID:???]
insert into table_name ... だった

673 名前:ド素人 [04/11/23 11:52:21 ID:3+AQgTJt]
sqlはこんな感じでございます↓
$inData = array(
'id'=>$sh->dba->nextId('tbl_bbs_id'),
'bid'=>$HTTP_VARS['bid'],
'id_no'=>$aUser['id_no'],
'title'=>ココ→ '\\',
'body'=>$VARS['body'],
'del_flg'=>'N'
)

674 名前:ド素人 [04/11/23 11:54:36 ID:3+AQgTJt]
単純なSQLでinsertしてみたのですが、、同じでした。

675 名前:ド素人 [04/11/23 12:00:53 ID:3+AQgTJt]
dbが壊れてるんでしょうか?通常はありえないんでしょうか?

676 名前:ド素人 [04/11/23 12:03:12 ID:3+AQgTJt]
フィールドタイプが「text」なんですが、これは問題ないでしょうか?

677 名前:nobodyさん mailto:sage [04/11/23 12:03:13 ID:???]
phpとsql、それぞれのエスケープで\\\\

678 名前:ド素人 [04/11/23 12:08:44 ID:3+AQgTJt]
ありがとうございました!!!!!!
は、、はいった。。涙が・・・

679 名前:ド素人 [04/11/23 12:14:09 ID:3+AQgTJt]
実はezのハートを入れようと、、2日寝ておりませんでした。。
^N\264の場合は ^N\\\\264に変えればでるのでしょうか?
もしも、ご存知でしたらご教授いただけますでしょうか?
場違いでしたら、退散いたします。。

680 名前:ド素人 [04/11/23 12:22:11 ID:3+AQgTJt]
nobody殿に感謝しつつ、退散いたします。
nobody殿、バンザーイ!バンザーイ!バンザーイ!



681 名前:nobodyさん mailto:sage [04/11/24 09:19:58 ID:???]
どういたしまして^^;

682 名前:nobodyさん mailto:sage [04/11/24 11:35:02 ID:???]
test

683 名前:nobodyさん mailto:sage [04/11/26 07:18:01 ID:???]
nobodyknows

684 名前:nobodyさん [05/02/23 08:53:54 ID:mE2XQAit]
あげ

685 名前:nobodyさん [05/03/06 00:22:16 ID:AGppAUzL]
ちょっと詰まっていることがあるのですが、わかる方がおられましたらアドバイス願います。
環境は、Linux(CentOS4.0)、Apache2.0、PostgreSQL7.4、PHP4.3(mbstring、pgsql付き)です。

---page1.php---
<?php
$page = "ページ1";
require ("search.inc");
?>

---page2.php---
<?php
$page = "ページ2";
require ("search.inc");
?>

---search.inc---
<?php
$con = pg_connect("dbname=db");
$result = pg_query($con, "select * from table where page = '$page'");
# 以下、内容の表示
?>

という構成で、要するに
page1.phpでは、データベースからpageフィールドが「ページ1」のレコードを表示し、
page2.phpでは、データベースからpageフィールドが「ページ2」のレコードを表示する、ことを意図しています。

ところが、現在生じている問題は、
page1.phpでもpage2.phpでも、「ページ1」「ページ2」両方のレコードが表示されてしまうのです。

他のページでも同様にデータベースからの検索・表示を行っているのですが、
そちらは問題なく、「ページ1」と「ページ2」だけが両方混ざってしまいます。
1とか2とか全角数字が問題なのでしょうか。両方selectされてしまうのが不可解なのですが。

686 名前:685 mailto:sage [05/03/06 00:44:38 ID:???]
補足です。

■page1.phpを、以下のように書き換えても、結果は同じでした。

---page1.php(改)---
<?php
$con = pg_connect("dbname=db");
$result = pg_query($con, "select * from table where page = 'ページ1'");
# 以下、内容の表示
?>

■また、$pageがひらがな・カタカナ・漢字のみの場合は、正しくselectされます。

---page3.php---
<?php
$page = "ほげほげ";
require ("search.inc");
?>

■データベースの内容をチェックしましたが、
 pageフィールドにはきちんと「ページ1」「ページ2」という値が入っています。

687 名前:nobodyさん mailto:sage [05/03/06 01:08:04 ID:???]
>>685
原因わからない(´・ω・`)ショボーン。
Postgresの設定いじってログにクエリを表示させて見てはどうだろうか。(既存のシステムだと無理だろうけど)

それとpage1.php page2.php page3.phpと分けないで
search.php?page=page1
とかしてやったほうがいいんじゃないか?

688 名前:nobodyさん mailto:sage [05/03/06 01:32:40 ID:???]
ロケールが設定されているとか。
show lc_collate;
show lc_ctype;
辺り。

689 名前:685 mailto:sage [05/03/06 16:56:51 ID:???]
レスどうもありがとうございます。

>>687
> それとpage1.php page2.php page3.phpと分けないで

実際のpage1.php、page2.phpは、HTML部分が異なるので、別ファイルにする必要があるんです。

>>688
> ロケールが設定されているとか。

なるほど、それが原因ですね、きっと。
しかし、ロケールの設定についてちょっと調べてみたんですが、
何だか難しくてよくわかりませんでした・・・orz。
これからもっと勉強します。

ちなみに、「ページ1」「ページ2」の表記を「ページ1」「ページ2」と半角数字に変えてみたら、
きちんとselectされるようになりました。当面はこれでしのぐことにします。

FedoraCore2では、こういう問題は生じませんでしたから、
OSにも左右されるみたいですね。同じRedHat系なんですが。

690 名前:nobodyさん mailto:sage [05/03/06 22:00:03 ID:???]
携帯サイト作ってるんですけど
開発環境のWEBサーバー(Apache2.0 Windows2000)では動作するんですが、
本番環境のWEBサーバー(Apache1.3 Linux)へ移すと「接続先のサーバは現在ご利用できません(502)」と出ます。

502のエラーとして調べた結果「ゲートウェイもしくはプロキシサーバが上流から無効なレスポンスを受け取った」とのことです。

このエラーの要因として考えられるのはHTTPD.CONFファイルの設定の違いでしょうか?
とすると、対処法として、本番環境のHTTPD.CONFを開発環境と同じにするしかないでしょうか?



691 名前:nobodyさん mailto:sage [05/03/07 08:44:23 ID:???]
>>690
ここはPHP postgreSQL のスレです

692 名前:nobodyさん mailto:sage [05/03/14 10:56:04 ID:???]
テーブルがなければ作る、というのはどういうやり方がスマートなんでしょうか。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef