【PHP】質問スレッドpart30【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/10/25(火) 06:50:06ID:Q4oGlTH3【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。
過去スレ、関連リンク、FAQ等>>2-10辺り
0516490
2005/11/15(火) 02:06:10ID:EuotBK4Kも大丈夫なんですが、pgsqlはエラーで、ダメみたいです。。。
0517nobodyさん
2005/11/15(火) 02:07:32ID:???0518490
2005/11/15(火) 02:09:41ID:EuotBK4Kいろいろありがとうございました。
ちょっと自分で本屋に行って勉強してみます。
ほんとに感謝します^^
では。
0519nobodyさん
2005/11/15(火) 02:15:58ID:???0520nobodyさん
2005/11/15(火) 02:16:01ID:???portを5432
にしてどうかな?
0521nobodyさん
2005/11/15(火) 02:23:55ID:???合ってんだろうなぁ。試しに、
psql --help
としてヘルプを出してみたときに、-p オプション説明のところに
defaultが書いてあると思うが、どうなってる?
いっそうの事、port=8040を渡さずに接続してみるのも手か?
0522nobodyさん
2005/11/15(火) 02:31:57ID:???わざわざポートを変えるかって気もするけど。
pg使ったこと無いんだけど、portが開いてなくても
unknownになるですかね?
0523521
2005/11/15(火) 02:55:51ID:???そなだ。
> server: unknown host name: localhost
ポートどころか、それ以前の問題っぽいな。
でも、localhostがunkownって...
0524nobodyさん
2005/11/15(火) 03:39:25ID:2PUyzd2zDBの内容が
フィールド 1,2、3、4
レコードの内容 1=(A,B)
2=(C,D)
3=(E,F)
4=(G,H)
だとすると、今の知識ではHTMLに書き出すとき、
A,B
C,D
E,F
G, H
と表示できるのですが、
C,B
E,D
G,F
と情報を斜めに表示するにはどうすればいいのでしょう?
0525nobodyさん
2005/11/15(火) 03:47:34ID:???>>テンプレは読みましたが、質問の仕方がわからない程の初心者です。
日本語を勉強することをおすすめします。
フィールドとかレコードとか理解してる?
テーブルをExcelみたいな表形式で表現してみなよ
0526nobodyさん
2005/11/15(火) 04:03:26ID:???どっち?
1 2 3 4 (←フィールド1からフィールド4)
1 A C E G (←レコード1)
2 B D F H (←レコード2)
1 2 (←フィールド1とフィールド2)
1 A B (←レコード1)
2 C D (←レコード2)
3 E F (←レコード3)
4 G H (←レコード4)
0527524
2005/11/15(火) 04:10:48ID:2PUyzd2z>>テンプレは読みましたが、質問の仕方がわからない程の初心者です。
テンプレは理解できても、PHPは理解できてないから上手く表現できないかもしれない。って言いたかったです><
>>526
後者です
0528nobodyさん
2005/11/15(火) 04:14:25ID:???レスありがとうございます。
フィールド→0843
レコード1→BAKA
レコード2→AHO
となっています。
0529nobodyさん
2005/11/15(火) 04:38:47ID:???phpが理解っていうよりプログラム言語一般の理解不足って感じがするけど
フィールドの2つ目はなんか入ってる必須&エラーとか考えずだけど
$result = mysql_query("select f1,f2 from table order by ?");
$f2 = "";
while ($row = mysql_fetch_array($result)) {
if ($f2 == "") $f2 = $row["f2"];
else {
echo $row["f1"].",".$f2."<br>\n";
$f2 = $row["f2"];
}
}
でどう?
0530524
2005/11/15(火) 05:35:05ID:2PUyzd2z0531nobodyさん
2005/11/15(火) 05:36:04ID:???0532nobodyさん
2005/11/15(火) 06:53:34ID:???ひさびさに ワロスww
期待の大型新人ですね。
いいなあ、みんな。また、あえるかなw
0534nobodyさん
2005/11/15(火) 11:33:49ID:0AfHumhWこういう記述ってまずいんでしょうか。
自分も普通に使ってるときがあるんですが
どのような記述がよいのでしょうか。
0536nobodyさん
2005/11/15(火) 11:44:30ID:???もうちっとマトモな理由だと思ってROMしてるんですが…
0537nobodyさん
2005/11/15(火) 11:47:05ID:???$hoge = 0;
や
$hoge = "";
の時の動作をどうするかですね
$hoge == FALSE
だと$hoge が0や""でも該当するので好きではない
普通は
$hoge === FALSE
を使う
0538nobodyさん
2005/11/15(火) 11:50:07ID:???ロリポップを借りているのですが、データベースをいじるときに
phpmyadminではなく、直接クエリを発行するにはどうすればいいですか?
コマンドプロンプトでできますか?
0541nobodyさん
2005/11/15(火) 11:57:59ID:???コマンドプロンプトって書いてるからwin版だと仮定して
c:\mysql\bin\mysql
いじょう
0542nobodyさん
2005/11/15(火) 12:00:11ID:???ほーーー
そんな記述方法があったとは勉強になりました。
でも503の言う吐き気のコードが直前のソースの、
$db=pg_connect(DB_CONN);
…
if($db==FALSE)
{
…
}
だとしたら、pg_connect()の返り値はFALSEかresouce型だから、0とか空文字とか
って可能性は無いしとりあえずは問題無いんじゃないのでしょうかと聞いてみる
0545nobodyさん
2005/11/15(火) 12:12:09ID:???なぁ、マジメに聞くんだが、オマイはその質問がPHPと関係あると思ったから
このスレに書き込んでるんだよな?
どういう判断で、関係あると思ったのか教えてくれまいか。
0547nobodyさん
2005/11/15(火) 12:14:19ID:???つか、PHPとMySQLで住所録みたいなのを作っていて、
どうしてこういう質問なのだろう、ってとこだよな。
「作っていて」じゃなくて「作ろうとして」なんだとは思うが。
0548nobodyさん
2005/11/15(火) 12:18:48ID:???最近、くだスレの方がまともな質問が多い気がするのは気のせい?
0550nobodyさん
2005/11/15(火) 17:43:42ID:BTJCOqzCMySQL 4.1.14
PHP 5.0.4 を使ってます。
<?PHP
$conn = mysql_connect("localhost", "usr","pass");
mysql_select_db("kisop", $conn);
$res = mysql_query("SHOW TABLES",$conn);
if($res == TRUE){ print("データ獲得に成功しました。");
}else{ print("失敗"); }
?>
とやっても、ページが真っ白になるだけでMySQLに接続できません。
usrはきちんと作られており、また、PHPもSQL接続以外は問題なく動いています。
また、ODBCからの接続は問題なかったりします・・・
何が悪いのか、心当たりある方、ご教授ください。
0552nobodyさん
2005/11/15(火) 17:51:35ID:???エラー無視ってるわけじゃないだろうな
0553nobodyさん
2005/11/15(火) 18:02:11ID:???真っ白なページが表示されるのは、PHPレベルでのエラーが発生していると思われるので
MySQLがどうこうは関係ないはず。
php.iniかスクリプトで設定して、エラーをブラウザに表示させるところから始めよう。
スクリプトで設定する場合は、先頭に以下を記述。
ini_set('display_errors', true);
error_reporting(E_ALL);
それ以降の話だけど、$res を == TRUE で判定するのは危ないと思われ。
$res === FALSE(=== 3つであることに注意)の方が安全。
0554nobodyさん
2005/11/15(火) 18:04:15ID:???0555nobodyさん
2005/11/15(火) 18:15:27ID:???ありがとうございました。
エラーを表示させたところ、
$conn = mysql_connect("localhost","usr");
の行にエラーがあるとのこと・・・
となると、やはりホスト名やユーザ名が怪しい・・・?
/etc/sysconfig/network の HOSTNAMEではなく、localhost固定ですよね?
どちらも実験しましたが、やはりダメでした・・・
0558550
2005/11/15(火) 18:19:46ID:???すみませんすみません。
Fatal error: Call to undefined function mysql_connect() in /var/www/html/simple_connect.php on line 8
というエラーでした。
0559nobodyさん
2005/11/15(火) 18:20:43ID:???0560nobodyさん
2005/11/15(火) 18:23:17ID:???0561nobodyさん
2005/11/15(火) 18:24:02ID:???くだスレのレベル >>> 本スレのレベル
になったんだ。
0562nobodyさん
2005/11/15(火) 18:28:02ID:???0563nobodyさん
2005/11/15(火) 18:28:32ID:???0564nobodyさん
2005/11/15(火) 18:28:49ID:???http://jp2.php.net/mysql
0565nobodyさん
2005/11/15(火) 18:33:39ID:???FC4使ってるけど最初から入ってた希ガス
0566550
2005/11/15(火) 18:41:12ID:???MySQLはきちんと入れてますが、いまだに原因がわかりません。涙
mysql> select user,host,password from mysql.user;
+------+-----------+------------------+
| user | host | password |
+------+-----------+------------------+
| root | localhost | xxxxxxxxxxxxxxxxx |
| usr | 192.% | xxxxxxxxxxxxxxxxx
| usr | localhost | |
+------+-----------+------------------+
きちんとユーザつくられているのに・・・涙
0567nobodyさん
2005/11/15(火) 18:43:32ID:???あのな、>>558のエラーはphpにmysqlの拡張モジュール組み込まれてないせいなの
phpinfoで確認した後、>>564読んで出直しておいで
0568nobodyさん
2005/11/15(火) 18:44:41ID:???0569nobodyさん
2005/11/15(火) 18:47:41ID:???なんか釣りのような気もしてきたが…
[PHP] <---> [PHPのMySQLモジュール] <---> [MySQL]
オマイさんのシステムには、[PHPのMySQLモジュール] がインストールされていない、
またはインストールされているが、使用するように設定されていない。
今時の Linux の状況は漏れは知らんが、>>564 氏の書かれた yum とかで
インストールできるんぢゃマイカ。
0570nobodyさん
2005/11/15(火) 18:48:01ID:???ありがとうございました。
拡張モジュールが不足していたんですね。汗
お騒がせ致しましたm(_ _)mペコリ
0571nobodyさん
2005/11/15(火) 18:48:30ID:???0572nobodyさん
2005/11/15(火) 18:53:43ID:???0574nobodyさん
2005/11/15(火) 19:02:07ID:???Fatal error: Call to undefined function mb_convert_encoding() in . . .
0576nobodyさん
2005/11/15(火) 19:21:38ID:???0577nobodyさん
2005/11/15(火) 19:23:23ID:???PHPにはもっと寛大な心を持って欲しい。
0578nobodyさん
2005/11/15(火) 19:51:01ID:???つーかデバッグはエラー出してやれよ
思わぬ落とし穴にはまるぞ
0579nobodyさん
2005/11/15(火) 20:02:35ID:???0580nobodyさん
2005/11/15(火) 20:15:05ID:PU11Oeiggrepで調べてみると、その関数名を持つ関数がやたらと
たくさんあります。
その場合のcall_user_funcで呼び出される優先度ってどういう
決まりがあるのでしょうか?
0581nobodyさん
2005/11/15(火) 20:20:51ID:???関数を2回定義したらFATAL ERROR。(オーバーロードもできない)。
grepでひっかかったのって呼び出しじゃないの?
0582nobodyさん
2005/11/15(火) 20:23:23ID:???class A { function hoge() {} }
class B { function hoge() {} }
class C { function hoge() {} }
ってオチかと
0583nobodyさん
2005/11/15(火) 20:24:56ID:???else { function hoge() {} }
もありうるな(あんまないかw)
0584580
2005/11/15(火) 20:28:05ID:???早速のレスどうもです。
別ファイル[ファイルX]に記述されてるのを呼び出してるんですけど見てたら
そのファイル[呼び出し元B]自体がrequire_onceで、
他のファイル[呼び出し元A]に呼ばれてるます('A`)
[呼び出し元A]の中ではrequire_onceで10個ぐらいよびだしてるので
その中のいずれかで、call_user_funcで呼び出してるファイルを
さらに呼び出してるぽいかも。
こういう階層にするのってPHPで一般的なのかな?
grepでひっかかったのは
function 呼び出し関数名(){
ってなってるのでたぶん間違ってないと思います。
本来なら、関数名だけで判断できるように同じ関数名は避けるべきっすよね?
もうちょっと調べてみますー。おかげで考えがまとまりました。
ありがとうございましたー。<m(_)m>
0585580
2005/11/15(火) 20:29:45ID:PU11Oeigおお、書いてる間にさらにレスが!ありがとうございます。
classは使ってないぽいです。
if文の中で関数定義なんてできるんすね。
phpって結構なんでもありだなぁ・・・。
0586nobodyさん
2005/11/15(火) 20:34:45ID:???require_once()は、スクリプトの実行時に同じファイ ルが複数回読み込まれ、評価される可能性がある場合に、
関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるため に使用します。
(マニュアルより)
も覚えとくといいかも
0587nobodyさん
2005/11/15(火) 20:34:48ID:???0588550
2005/11/15(火) 20:49:22ID:???rpm -ihv http://download.fedora.redhat.com/pub/fedora/linux/core/updates/4/i386/php-mysql-5.0.4-10.5.i386.rpm
本当に有難う御座います。
0590580
2005/11/15(火) 20:59:15ID:???同じ名前にして処理をかえるような仕掛けでした。
人のソースはやっぱ仕掛けがわかりにくいです('A`)
どうも、お騒がせしますた。
>>587
初心者の質問なんてそんなもんじゃ?
0592490
2005/11/15(火) 21:21:35ID:bjEKtblWpsql --help の一部です。
Connection options:
-h HOSTNAME specify database server host (default: local socket)
-p PORT specify database server port (default: 5432)
-U NAME specify database user name (default: xxxx)
-W prompt for password (should happen automatically)
上記に合わせて、config.phpを変更しました。が、ダメでした。。。
configの書き方と設定の仕方がわるいのでしょうか?
PHPですか、postgreSQLの設定ですか?
どうしたらいいですか?急いでいます!わかる方,お願いします。
0593名無し募集中。。。
2005/11/15(火) 21:26:58ID:???掲示板への質問の仕方が悪いんじゃない?
0594nobodyさん
2005/11/15(火) 21:35:19ID:???0595532
2005/11/15(火) 21:35:33ID:???キタノ?
本物キターーーノ?
ワクテカw
0596nobodyさん
2005/11/15(火) 21:37:32ID:???0597nobodyさん
2005/11/15(火) 21:37:53ID:???>>493-495の流れで
>というか、急いでるんです。
と言い出し、挙句の果てには
>>518-519
>ちょっと自分で本屋に行って勉強してみます。
等と戯けた事を言い出す始末だけどna
(つか本を買おうという気もまるでなし('A`))
0598nobodyさん
2005/11/15(火) 21:37:58ID:???0599nobodyさん
2005/11/15(火) 21:39:49ID:???0600nobodyさん
2005/11/15(火) 21:47:24ID:???今日は、キチガイのオンパレードだな…
1) postgresへの接続は具体的なコードは?、コードはオマイが書いたのか?
2) configの書き方うんぬんと書いてあるが、configとは何?、内容は何?
>>490 のカキコより
3) エラーメッセージが "unknown host name: localhost" と表示されているが該当マシンで ping localhost はOK?
4) port=8040 となっているが、postgresの初期設定では 5432 のはず。オマイが変更しているのか?
5) 該当マシンで以下を行うと正常に接続できる?
psql -hlocalhost -p8040 -Utestuser2 -dtestdb2
psql -h127.0.0.1 -p8040 -Utestuser2 -dtestdb2
psql -hlocalhost -p5432 -Utestuser2 -dtestdb2
psql -h127.0.0.1 -p5432 -Utestuser2 -dtestdb2
後、急いでる、急いでるってバカの一つ覚えみたいにわめくな。
急いで解決したければ、質問の仕方から考え直せ。
0601490
2005/11/15(火) 22:01:24ID:NEc3YLTapsql -hlocalhost -p8040 -Utestuser2 -dtestdb2
psql -h127.0.0.1 -p8040 -Utestuser2 -dtestdb2
は接続拒否でした。残り2つの-p5432の方はOKです。
config.php
<?php
if(ereg("config.php",$_SERVER["PHP_SELF"]))
{
exit();
}
define("DB_HOST","localhost");
define("DB_PORT",5432);
define("DB_NAME","testdb2");
define("DB_USER","testuser2");
define("DB_CONN","host=" .DB_HOST
."port=" .DB_PORT
."dbname=" .DB_NAME
."user=" .DB_USER);
?>
0602nobodyさん
2005/11/15(火) 22:06:15ID:???>は接続拒否でした。残り2つの-p5432の方はOKです。
おいおいこれが釣りじゃなく本気ならやべーぞお前技術者向いてないよw
0603nobodyさん
2005/11/15(火) 22:13:57ID:???ここまでしつこい&知らないと逆に感心するなw
define(."DB_CONN","dbname=" .DB_NAME );
一度これだけでやってみれ、portは5432な
つか本買わないんだったらマニュアル読めや
0604nobodyさん
2005/11/15(火) 22:16:29ID:???0605600
2005/11/15(火) 22:18:14ID:???ポート8040ってのはどこから出てきたんだ…
その状況だと >>490 の時点とはエラーメッセージが変わってるんじゃないのか?
1) 念のため聞くが、WEBサーバー(PHPが動作しているサーバー)とpostgresが動作している
サーバーは同じサーバー?
2) 現在のエラーメッセージは?
3) 接続パラメータにパスワードがないが、パスワードなしでOK?
4) 先のカキコで聞いたが、無視しやがるので再度。postgresへ接続する部分の具体的なコードは?
0606nobodyさん
2005/11/15(火) 22:20:00ID:???0608nobodyさん
2005/11/15(火) 22:27:04ID:AP0zNwzy通常の画像〜.pngなどはサーバー側で更新されていなければ再取得せずにキャッシュが使われますが、PHPで書いてある場合にはどのようにしたら同じような挙動をさせることができるでしょうか?
0609nobodyさん
2005/11/15(火) 22:29:05ID:???参考書とかマニュアルなんて読めるわけが無いよな
0612490
2005/11/15(火) 22:34:07ID:NEc3YLTaありがとうございます。
>>603
これでいいでしょうか?
config.php
<?php
if(ereg("config.php",$_SERVER["PHP_SELF"]))
{
exit();
}
define("DB_NAME","testdb2");
define("DB_CONN","dbname=" .DB_NAME);
?>
結果ですが、ダメみたいです。
<br /><b>Warning</b>:
pg_connect()
[<a href='function.pg-connect'>
function.pg-connect</a>]
Unable to connect to PostgreSQL server: FATAL:
user "nobody" does not exist
---------------------------------------------------
0613490
2005/11/15(火) 22:34:33ID:NEc3YLTa<?php
require("config.php");
$db=pg_connect(DB_CONN);
header("Content-Type:text/plain;Charset=EUC-JP");
if($db==FALSE)
{
echo " not connect db?n " ;
}
else
{
echo "database connect ok?n" ;
}
?>
0615nobodyさん
2005/11/15(火) 22:39:06ID:???■ このスレッドは過去ログ倉庫に格納されています