【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辺り
0486nobodyさん
2005/11/14(月) 16:51:16ID:???難しくて読めないんじゃなくて、汚くて読めないの。
おまいはまずLispの処理系くらい作れるようになってから来ようね。
>>484
APCで憤死者って?
0489nobodyさん
2005/11/14(月) 17:57:48ID:???APC3が安定するまでにずいぶんと時間がかかったことかな?
eAcceleratorも一から書き直してるってサイトに書いてあるけど、完遂できるかちと心配。
PHP6ではOpcode Cacheが本体につく予定なんだよね?
0490nobodyさん
2005/11/15(火) 00:53:24ID:EuotBK4Kブラウザに以下の説明が出ます。
Unable to connect to PostgreSQL
server: unknown host name: localhost
port=8040
dbname=testdb2
user=testuser2
OSはfedoraCore4 php5 apache2を使用しています。
ポストグレ側の設定がおかしいのでしょうか?
わかる方、お願いします。
0492nobodyさん
2005/11/15(火) 01:19:20ID:???0494490
2005/11/15(火) 01:24:09ID:EuotBK4Kいま、確認してみます。
0495490
2005/11/15(火) 01:27:26ID:EuotBK4Kわかる方いませんか?
0496nobodyさん
2005/11/15(火) 01:29:13ID:???少し落ち着け。それだけじゃ何も分らん。
まず何をしようとしてその表示が出るのか、
急になったのか最初からなのか。
俺らはお前の鯖見れないんだからよ。
0498nobodyさん
2005/11/15(火) 01:31:57ID:???熱心だね
0499nobodyさん
2005/11/15(火) 01:33:09ID:???0500490
2005/11/15(火) 01:35:16ID:EuotBK4K<?php
if(ereg("config.php",$_SERVER["PHP_SELF"]))
{
exit();
}
define("DB_HOST","localhost");
define("DB_PORT",8040);
define("DB_NAME","testdb2");
define("DB_USER","testuser2");
define("DB_PASS","abcd1234");
define("DB_CONN","host=" .DB_HOST
."port=" .DB_PORT
."dbname=" .DB_NAME
."user=" .DB_USER
."password=" .DB_PASS);
?>
0501490
2005/11/15(火) 01:36:10ID:EuotBK4K3-4-1.phpの中身が、
<?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" ;
}
?>
です。
何か間違っていますか?
0502nobodyさん
2005/11/15(火) 01:37:56ID:???いや、お前な、マジで少し落ち着け。
そのconfig.phpって何のスクリプトに内包されてる奴よ?
自作じゃないだろ?
で、「急になったのか最初からなのか」はどうなのよ?
最初からならpsqlが動いてるかどうか確認しろ。
0503nobodyさん
2005/11/15(火) 01:39:40ID:???0504nobodyさん
2005/11/15(火) 01:41:23ID:???0505490
2005/11/15(火) 01:43:26ID:EuotBK4K/user/local/apache2/bin/apachectl start
pg_ctl -o "-i"
で動作中です。しかし>>490掲載 エラーです。
localhostの意味がよくわかりません。
書籍を参考に勉強中です。
0506nobodyさん
2005/11/15(火) 01:46:38ID:???ポートがデフォルトじゃないけどいいの?
>>define("DB_HOST","localhost");
>>define("DB_PORT",8040);
0507490
2005/11/15(火) 01:47:45ID:EuotBK4Kに問題があるのでしょうか?
設定がよくわかりません。
ポストグレの設定に問題あるのか、
PHPの設定に問題があるのか。。。
0509490
2005/11/15(火) 01:49:09ID:EuotBK4Kとは、なんでしょうか?
どう設定すればいいのでしょうか?
よくわからないもので..
0510nobodyさん
2005/11/15(火) 01:50:00ID:???>>507
おまえさ、急ぐ必要なさそうだからちょっとじっくり勉強しなおせ
0511490
2005/11/15(火) 01:50:02ID:EuotBK4Kはい。作成済みです。
0512nobodyさん
2005/11/15(火) 01:52:55ID:???0513490
2005/11/15(火) 01:55:34ID:EuotBK4K/user/local/apache2
にインストールしています。
はい。同じサーバです。
0514nobodyさん
2005/11/15(火) 02:03:52ID:???は動く?
0515490
2005/11/15(火) 02:05:05ID:EuotBK4K0516490
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()は、スクリプトの実行時に同じファイ ルが複数回読み込まれ、評価される可能性がある場合に、
関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるため に使用します。
(マニュアルより)
も覚えとくといいかも
■ このスレッドは過去ログ倉庫に格納されています