トップページ⇒php
949コメント332KB

PHP + MySQL

■ このスレッドは過去ログ倉庫に格納されています
0001ECY NGNG
そろそろPHP + MySQLについても語ってほしい脳
0114名無しさん@お腹いっぱい。2001/08/22(水) 17:46ID:3EIRhkwc
下げちゃったのであげさせていただきます。
スマソ。
0115ななしさん01/10/16 14:37ID:Ey/LzZRl
定期age
0116名無しさん@お腹いっぱい。01/10/22 17:26ID:4SdlYUpT
mod_auth_mysql使って
PHPスクリプトから会員&パスワードを発行して、
apacheで認証ってしてみたいんだけど。

どこかにソースはありませんかのう姉妹?
0117名無し職人01/10/22 23:57ID:0plXJa9e
WINDOWS用のMySQLのよい
マニュアルってございませんかー?
0118名無しさん@お腹いっぱい。01/10/23 00:23ID:???
>>117
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_toc.html
011911601/10/24 00:03ID:???

できました。
0120 01/11/05 13:58ID:vcKAct35
すいません、SQLなんですがどこで聞けばいいのかわからないのでここで聞かせて下さい。
InterBase Interactive SQLってソフト使ってるんですが、

create table test(FLAG numeric(1),PNAME varchar(20),UPDTDT datetime,BIKO varchar(20),SYOYUSYA varchar(20));

これでエラーが出てしまうんですが、何故でしょうか。

Dynamic SQL Error
-SQL error code = -607
-Invalid command
-Specified domain or source column does not exist
012112001/11/05 14:12ID:vcKAct35
たぶん、datetimeの部分が問題あると思うんですが、
日付型にしたくて
20010925 10:35:21
みたいな感じにしたいんですが。。。
0122名無しさん@お腹いっぱい。01/11/06 21:35ID:b75oj9Rb
PHP4.0.4なんですが文字コードをEUCからShift-JISに変換する
関数ってありましたっけ。
0123名無しさん@お腹いっぱい。01/11/07 00:39ID:???
PHPでブラウザからMySQLのデータをバックアップしようと

ボタン押す
 
if(!$backup = mysql_query("select * from テーブル名 into outfile '/usr/local/xxx/xxx/xxxx.txt'") ) {
  echo "えらー";
  exit;
 }

完了
で、クリックしてダウンロード

という事を試していますが、ローカル(Win)ではうまくいっても
実際のサーバーではエラーが出ます。
コマンドを打てば、サーバーでもうまくいきます。

nobodyでは無理なのでしょうか?
cron 使ってできるのならそっちの方がよいですけど、cronも
使ったことなくて。
0124名無しさん01/11/15 23:40ID:???
MySQLが、ろ
0125名無しさん@お腹いっぱい。01/11/16 00:13ID:???
>>123
nobody は /usr/local/xxx/xxx に書けるんか?
0126名無しさん@お腹いっぱい。01/11/16 14:53ID:???
>>123
ちなみに、MySQLのselect * into outfile 'FILE'は FILEが存在すると失敗する。
0127名無しさん@お腹いっぱい。01/11/19 03:35ID:???
>>122
mb_convert_encoding (string, "SJIS", "EUC");
てな感じでいいのでは?
[, "EUC"] は省略可。
0128名無しさん@お腹いっぱい。 01/11/21 21:32ID:???
>>127
2バイトコードの変換は4.06からじゃなかったけ?
012912201/11/22 09:46ID:???
>127さんありがとうございます。
>128さんのおっしゃるとおりですので、

ttp://www.spencernetwork.org/

で解決させました。
0130名無しさん@お腹いっぱい。01/11/29 04:34ID:lzlfsEO3
凄く初歩的な質問で恥ずかしいのですが、MySQLのテーブルをロックする場合
select時も必要なのでしょうか?
CriticalSectionと同じ使い方でいいのかな、と。
0131名無しさん@お腹いっぱい。02/01/25 21:08ID:EnQhZp93
ずっとマニュアル見ながら考えてるんだけどよく分からない。
MySQLでLOCK TABLE使わないと、ファイルを直接書き換える時みたいに、
データベース自体が壊れてしまう、つまり空になってしまう事ってあるの?
0132名無しさん@お腹いっぱい。02/01/25 22:15ID:YPhuvDQP
>>131
あったら困るが・・・。
0133名無しさん@お腹いっぱい。02/01/27 01:37ID:cosj42ZD
同じレコードのデータを同時にupdateするケースがある場合以外に
lockする必要は無いだろうに・・・。
WEB+DBマガジンでもよんどけ。
013413102/01/27 08:03ID:0uaA5Fv8
こんなのあった。

http://www.mysql.gr.jp/mysqlml/msg.cgi?ml=mysql&id=4893
0135名無しさん@お腹いっぱい。02/02/10 05:00ID:/GsQSjbc
画像のDB作ってんだけどLONGBLOBのフィールドに
どうしても16MBytes以上のデータを挿入できないんだよ。
my.cnfにmax_allowed_packet=64M
とか設定することで、一応16MBまではOKみたいなんだけど、
だれかこの謎について知らない?
0136名無しさん@お腹いっぱい。02/02/13 13:12ID:41nJDth8
>>135
エンコードされた文字列のまま格納しようとしてるとか?
0137名無しさん@お腹いっぱい。02/02/13 17:35ID:???
mysql_query() って、一度にひとつのSQL文しか実行できないの?
サブクエリの代わりにMySQL変数を使ってみようと思って、

$res = mysql_query(
  "select @nextid:=coalesce(max(i),0)+1 from t1;
   insert into t1 values(@nextid,'hogehoge');",
  $con
);

ってやってみたら、

You have an error in your SQL syntax near '; insert into t1 values(@nextid,'hogehoge')' at line 1

というエラーになってしまった。
mysqlコマンドからはできたんだけど、これはコマンドか分けて送信してるのかな。
0138  02/02/14 07:18ID:???
mysqlって、つかったことないから、わかんない
postgresじゃ、だめなの?
0139 02/02/15 12:53ID:???
sage
014013702/02/16 00:36ID:???
>>139
だって Vacuuuum とかめんどくさいんだもの。
一度立てたら最低限のバックアップくらいであとはほっときたいじゃん。
0141名無しさん@お腹いっぱい。02/02/20 02:52ID:???
PHP+MySQLのオークションシステム配布してるとこ
知りませんか?
以前、外国で見たことあるのですが、どこだったか
忘れてしまいました。
日本語版があると、更に良いのですが。
0142名無しさん@お腹いっぱい。02/02/20 15:56ID:???
>>140
スレ違いだけどスマソ。
PostgreSQL7.2は、「5秒毎にVacuumかけてもOKだぜ!」と豪語してる。
Vacuumが不要なわけではないけど、機能停止せずにVacuum可能になったらしい。
0143nobodyさん02/03/02 17:35ID:GfXDGnRV
調べても分からなかったので質問させてください。Win98 + MySQL + PHP で、

$query ="insert into person(id,name,reading,like,hate,want,intro) values('2002030207145036','名無し','ななし','肉','椎茸','X-BOX','小学3年生です')";
mysql_query($query);

とやると成功するんですが、

$query ="insert into person(id,name,reading,like,hate,want,intro) values($form[0],$form[1],$form[2],$form[3],$form[4],$form[5],$form[6])";
mysql_query($query);

こうすると失敗してしまいます。きちんと値が渡っていないようなんですが、
これの原因、解決策はありますでしょうか?
0144nobodyさん02/03/02 18:14ID:???
1行目と2行目の間に
echo $query;

2行目の後に
echo "<br>" . mysql_error();

と書き足して実行してみよう
0145nobodyさん02/03/02 19:17ID:???
$form[]をSQL文の中で'で囲ってないだけじゃなくて?
014614302/03/02 20:28ID:N9v4UEdy

>>145 さんの言われた通り、クォーテーションで囲んだら
正常に実行できるようになりました。クォーテーションで
囲まれた中にある変数は参照されないとばかり思っていたのが
そもそも間違いの元でした。

ありがとうございました。
0147nobodyさん02/03/03 20:52ID:69e0GrH8
Windows版MySQL ver 1.2 で、ひらがなのソートが上手く行きません。
Win版では日本語は対応していないのですか?
0148nobodyさん02/03/05 12:59ID:???
>>147
「上手く行きません」の詳しい内容を書きましょう。
0149nobodyさん02/03/05 14:04ID:???
>>148
"つ" の上に "ゆ" が来てたりして、きちんとソートされないんです
0150nobodyさん02/03/05 18:16ID:bIkjFbNp
ボタンを押すと時間を記録スルスクリプトなんですが
時間表示が妙な数字の並びになってしまうのですが
普通の2002/9/3 12:34のようなスクリプトに書き直すのにはどうすればいいでしょうか?
DB使わずにechoで返せばそうなるのですが・・
<FORM action="time.php"><INPUT type="submit" name="get"></FORM>
<HR>
<?php
$db=mysql_connect("localhost","nanasi",*******);
mysql_select_db(time);
$time=date("Y/m/d h:i:s");
if($get)
{
mysql_query("insert into time set time='$time'");
}
$sq=mysql_query("select * from time");
while($array=mysql_fetch_array($sq))
{
$datatime=$array["time"];
print("$datatime");
}
mysql_close($db);
?>
0151nobodyさん02/03/05 23:11ID:???
>150
時間を格納するフィールドの型はどうなってんだ?
0152nobodyさん02/03/06 01:25ID:???
INSERT INTO tabe1 (time1) values ( NOW() );
0153nobodyさん02/03/06 10:56ID:RiDVorzN
ごめんなさい出来ました
timestampをdatetimeに変えた
$db=mysql_connect("localhost","nanasi",*******);
mysql_select_db(time);
$time=date("Y/m/d h:i:s");
if($get)
{
mysql_query("insert into time values('$time')");
}
$sql=mysql_query("select * from time");
while($array=mysql_fetch_array($sql))
{
print("$array[time]<BR>");
}
0154nobodyさん02/03/06 12:51ID:b7FmzTqP
>>149

MySQLが日本語サポートしてないなら、
ソート用のフィールド1個つくって
そこに
アホ→1165
あいうえお→1112131415
とか適当な変換した数値入れて、
そいつでORDER BYかければいいんじゃない?
015515202/03/07 11:26ID:???
>>153
だからMySQLの関数NOW()を使えばPHPのコードで時刻取得しなくていいって。
0156nobodyさん02/03/07 11:34ID:???
>>149
my.iniにエンコーディングの指定は入れてる?
ttp://www.google.com/search?q=my.ini+windows+%83G%83%93%83R%81%5B%83f%83B%83%93%83O&hl=ja&lr=lang_ja
0157nobodyさん02/03/07 11:43ID:???
こんなのもあった
ttp://www.mysql.gr.jp/jpdoc/4.0/manual.ja_MySQL_Database_Administration.html#Character_sets
015814702/03/07 12:25ID:???
ご意見有り難うございます。
確かにローカル環境ではそのような対策によって問題を解決することが
できるのですが、サーバ側(XREA) の設定はデフォルトになっていまして、
変更がきかない状態です。>>154 さんの方法も視野に入れて、
検討しなおしてみます。
0159nobodyさん02/03/07 13:03ID:2htMbj9y
鯖がボロイせいなのかもしれませんが、
SELECT * FROM table
で10秒くらい待たされます。
件数は1000件ほどなのですが、MySQLが速いといってもこんなもんなのですか?
鯖はPen3 500MHz Mem128K Win98です。
0160nobodyさん02/03/07 14:41ID:ViFldAhD
$db=mysql_connect("localhost","@@@@@@",*******);
mysql_select_db(bbs);
if($name&&$msg)
{
mysql_query("insert into time values(now(),'$name','$msg')");
}
$hoge="select * from bbs";
$hoge="select bbs from bbs order by time desc";
$sql=mysql_query($hoge);
while($array=mysql_fetch_array($sql))
{
print("$array[name]<BR>");
print("$array[msg]<BR>");
print("$array[time]<BR>");
}
?>
</BODY>
</HTML>
なぜfetch_arrayが動かないのでしょうか、、(;;)?ミスを指摘してもらえま
ませんか?
0161nobodyさん02/03/07 15:32ID:???
$hoge="select * from bbs";
$hoge="select bbs from bbs order by time desc";

どうでも良いけど、書き直す意味は?
0162nobodyさん02/03/07 16:17ID:ViFldAhD
>>161
並び替えの理由でしょうか(´д`;)?
簡易bbs作りたいんです
0163nobodyさん02/03/07 17:39ID:2htMbj9y
同じ変数に何度も入れなおすのはいかがなものか。
0164nobodyさん02/03/07 18:51ID:???
>>160
エラー処理は必ず入れよう。

if (!mysql_query("insert into time values(now(),'$name','$msg')")) {
echo mysql_error();
exit;
}

あとtimeとか一般的過ぎる名前はSQLの予約語になっていないか疑ってみよう。
漏れは怖いのでtime1とかつけて逃げる。
0165nobodyさん02/03/07 19:09ID:???
>>164
ありがとう(^д^)!,俺もtime1使う事にするは!
ども!
0166nobodyさん02/03/12 00:36ID:???
最近 LEFT OUTER JOIN を知って感動したけど、他に何かすごい技ってないかな?

ちょっと弱気にsage。
0167nobodyさん02/03/12 04:09ID:???

SQLに代入したテキストを取得して表示させると
"表\示"のようになってしまいます。これを防ぐには
どうしたら良いでしょうか
0168nobodyさん02/03/12 11:12ID:FQ2EPisb
>>162
>>161 は >>163 ってことだろう
0169nobodyさん02/03/12 12:28ID:???
>>167
Shift-JISをやめる
0170nobodyさん02/03/12 16:46ID:???
>>169
諦めてEUCにしました
0171nobodyさん02/03/23 01:59ID:+fv2A8Nb
今まで Apache + PHP + PostgreSQL on Linux で
開発してきたのですが、IIS + PHP + MySQL on WinNT での
開発依頼がきてしまいました。

MySQL 関連でお薦めの参考文献はありますか?
017295702/03/29 17:47ID:nw+WUuT4
PHPでMySQLのデータをXMLに変換してる方います?
0173nobodyさん02/03/30 11:37ID:M/C/V7hb
他のスレでも質問したのですが、こっちのほうがよさそうなので…
MySQLに格納されている画像の大きさを取得したいのですが
どうやったらいいでしょう?
GetImageSize($sql_dat[image])ではできませんでした。
SQLから取り出した画像を一回フォルダに書き込んでサイズ取得
その後フォルダの画像を消すみたいなのはかなり強引なやり方ですが…。
他に何か方法ありませんか?
0174nobodyさん02/03/30 17:16ID:xPohoijV
MySQLのフィールドサイズを教えてください。
知りたい型は
DATE型
TINYTEXT型
TEXT型
MEDIUMTEXT型
LONGTEXT型
です。
よろしくお願いします。
0175nobodyさん02/03/30 22:39ID:???
>>174

DATE型 → たしかマニュアルに書いてたような・・・
TINYTEXT型 → たしかマニュアルに書いてたような・・・
TEXT型 → たしかマニュアルに書いてたような・・・
MEDIUMTEXT型 → たしかマニュアルに書いてたような・・・
LONGTEXT型 → たしかマニュアルに書いてたような・・・
0176☆02/03/31 16:03ID:aL9WnZNZ
.6.2 日付と時間タイプの保存容量
フィールドタイプ 所要容量
DATE 3 bytes
DATETIME 8 bytes
TIMESTAMP 4 bytes
TIME 3 bytes
YEAR 1 byte

6.2.6.3 文字列タイプの保存容量
フィールドタイプ 所要容量
CHAR(M) M bytes, 1 <= M <= 255
VARCHAR(M) L+1 bytes, where L <= M and 1 <= M <= 255
TINYBLOB, TINYTEXT L+1 bytes,where L < 2^8
BLOB, TEXT L+2 bytes,where L < 2^16
MEDIUMBLOB, MEDIUMTEXT L+3 bytes,where L < 2^24
LONGBLOB, LONGTEXT L+4 bytes,where L < 2^32
ENUM('value1','value2',...) 1 or 2 bytes, 列挙値の数に依存 (最大値は 65535 )
SET('value1','value2',...) 1, 2, 3, 4 or 8 bytes, 要素の数に依存 (最大要素 64 )
0177☆02/03/31 16:07ID:aL9WnZNZ
ちょい質問。
MySQLのTEXTフィールドに、改行コードが入った文字列を入れました。
これをPHPでゲットして表示すると改行はされずに一行で表示されます。
改行は、<BR>に変換して表示しないとダメなんですか?
もしそうならどうやって変換しているのですか?
0178nobodyさん02/03/31 18:41ID:34FKVasX
それはHTMLなら変換しなきゃ。。。改行以外も。。。
http://www.google.co.jp/search?hl=ja&q=nl2br&lr=lang_ja
http://www.google.co.jp/search?hl=ja&q=htmlspecialchars&lr=lang_ja
0179nobodyさん02/04/01 09:04ID:ePtKp0Pt
>>177

TXETを$messageに入れたとして
$message = ereg_replace("\n|\r\n|\r", "<br>",$message);

わたしは改行コードを<br>に一度変換して、MySqlに入れてます。
MySqlから取り出すときは逆をやると・・・。
0180nobodyさん02/04/02 01:53ID:1F1eJ6FA
Mysql関連の質問ですが、1テーブルあたりの最大カラム数がどれくらいかどなたかご存知でしょうか?
(現在結構大きなシステムを作ってるのでカラム数が1000ぐらい逝きそうなのです。)
また、1テーブルあたりのデーター数は特に制限はないのでしょうか?
よろしくお願いします。
0181nobodyさん02/04/02 15:10ID:9yw1c0Ia
> 180
カラム数ではなくバイト数の制限というのをどこかで見た記憶が。。。
うろ覚えでスマソ
0182nobodyさん02/04/02 21:04ID:1F1eJ6FA
>>181
どうもありがとうございます。
バイト数の制限ってテーブルの大きさに限界があるってことでしょうか。
てことはあんまり容量の大きくなったテーブルはデーターの書きこみが出来ないってことですね。
やっぱりpostgreSQLを使ったほうが良かったかなあ・・・
速いってことに惹かれたのですが。
018318102/04/02 23:07ID:8qPk2oUk
>> 182
やっぱうろ覚えのようでした。
http://www.kbcenter.com/kb.php?u_action=view_kb&kb_id=2407&category_id=71
Q. What is the maximum number of columns in a table?
A. The answer is: at least 2000 columns
0184nobodyさん02/04/03 14:33ID:JehAsWDR
>>183
どうもありがとうございます。
PostgreSQLはカラム制限が確か500〜1600だったと思うのでカラム数の上限に関してはMySQLのほうが上ですね。
同サイトで検索をかけたらデータサイズのリミットについても載ってました。

Q. maximum table size?

A.
The maximum table size is limited by the MySQL version, the OS and in particular the filesystem. In most cases, this effectively comes out to: "The size of your hard drive." Many Linux systems impose a 2GB limit on files.

MySQL v. 3.23 in particular, can be compiled to enable large tables which are only limited by the filesystem (unless, of course, your drive is larger than 800 million terabytes.)

つまりMySQLのV.3.23ならファイルシステム以外に特に制限がないとなってますね。
やっぱりMySQL(・∀・)イイ!
少しの間でも疑ってスマヌ。
0185nobodyさん02/04/08 00:35ID:ThlnEI/e
すいません、質問です。
非常に小規模なPHPとMySQLをつかった(on Win98)Web業務アプリを
社内SE(といっても無理やり任命...鬱)として開発しているのですが、しょっぱ
なから躓いてしまいました。

PHP(のスクリプト)からMySQLへ接続しようとすると、「sjis.confがない!用意しろ」
という意味のエラーメッセージが表示されてしまいます。
Webで調べて、非公認のsjis.confとか、日本MySQL会の過去MLにあったujis.conf
などを取り寄せたりしましたが、結局は[sjis.confなるものは存在しない」「再コン
パイルが必要」という結論のようです。
 現状は問題無く(非公認sjis.confのおかげで)稼動していますが、本線から外れた
気がして、気になってしかたがありません。

 この様な問題を体験した方、どのように問題をクリアしたか教えてくれませんか?
宜しくお願いします。

0186nobodyさん02/04/08 01:14ID:9VtFCTbU
>> 185
PHPのバージョン、MySQLのバージョン等、環境が知りたいなぁ。
0187nobodyさん02/04/08 17:41ID:k1pVA1I5
>> 186
便乗質問ですが、Windows、PHP4.1.x、MySQL3.23.xの環境で、PHPとMySQLをトータルで
考えた場合、日本語の環境はどのようなものが良いでしょうか?
PHPの内部エンコードなども含めて。

PHPのコードもデータベースに保存するテキストもEUCにしていますが、
DOS窓で日本語が表示できないなど、不便を感じています。

また、書籍「MySQL&PHP(田中ナルミ著)」のP334には、「MySQLサーバーを
SJISやEUCで立ち上げると、PHPを通じたMySQLの操作がうまくいかないこと
があります(PHP4の日本語対応が不完全なため)。」
その対策方法も書かれていますが、どれが良いのか迷います。
0188nobodyさん02/04/08 21:44ID:???
UTF-8
0189nobodyさん02/04/08 23:00ID:9VtFCTbU
個人的にはEUC-JPで統一かなぁ、と思います。
SJISを使わざるをえない場合(携帯用とか)なら
PHP3でやっちゃいそうです。
DOS窓で日本語…ってMySQLの操作のことですかね?
phpmyadminとかじゃダメですか?

ただ、このあたりは少々宗教戦争っぽいんですよね。
文字コードに関する論争なんかは、例えば
[PHP-users 4681] sjis で  echo ”能” エラー
ここから始まるスレッドあたりでしょうか。
0190nobodyさん02/04/09 00:00ID:CyKKzVcs
>> 189
>
> DOS窓で日本語…ってMySQLの操作のことですかね?

そうDOS。。。

> phpmyadminとかじゃダメですか?

それいいですね。THANKS!
019118502/04/09 23:22ID:???
>>186
遅レスすいません。環境は、以下の通りです。
OS:win98
サーバー:AN httpd(中田氏のもの。将来的にはApacheに。。。)
PHP : ver. 4.1.1
MySQL : ver.3.23.46
PHPスクリプト埋め込んだHTML(.php)の文字コード:x-sjis(SJIS)

なんか答えが半分出てしまったようなのですが、やはり問題として
議論の対象となっていたのですね。
UNIX系OSでコンパイルするような環境が当方にあれば良いのですが、UNIXに
関するshellなどの知識の習得や、運用など一から勉強しなくては逝けない
ことばかりで、当方にはまったくそのような時間はありません。
PHPの前はActivePerl(=perl)で、接続に関してはあまり問題無かったので
なおさらショックです。

 PHPに結構強い期待を寄せていたのですが、やっぱりperlに戻らなくては
逝けないのかなー?そう考えると鬱です。。。

019218602/04/10 00:12ID:???
>>191
私はWindows2000 + Apache 1.3.24 + PHP 4.1.2 + MySQL 3.23.39 ...
でユーザー20人くらいのものを作っていますが、別に問題感じていませんが…
運がいい(ダメ文字が今まで入っていない)だけなのかな?
ちなみに189で言いましたが文字コードは全部EUC-JPで統一です。

一つ気になるのですが、Perlでは接続は問題ないとはいえ
http://homepage1.nifty.com/yito/anhttpd/faq/mysql.html
で言われているように、、「ソ」「構」「能」「表」など 5C のコードを含む文字
が文字化けを起こしてしまうんではないですか?
これってMySQLの問題であって、PHPだろうとPerlだろうと
出てきてしまうのでは?

HTMLをSJISで書くのを避けられないなら、
mbstringで変換してDBにはEUCで放り込むとか。
(うまくいくか自信なし…というか上の文章全部自信は無くて、
あくまでも自分の経験だけなので間違っていたらごめんなさい)
0193nobodyさん02/04/10 00:15ID:???
で、
マルチバイト文字列関数(mbstring)のマニュアルは
http://jp2.php.net/manual/ja/ref.mbstring.php
このあたりで…。

4.1.0以降ならWindows版のPHPもmbstringは
組み込まれていると思います。

あと、PHP 4のRFC1867(ファイルアップロード関連)に関するコードに
セキュリティ上の欠陥があり、任意のコードを実行される可能性が
あるので、最新のPHP 4.1.2にバージョンアップするか、修正用パッチを
適用するか、php.iniを書き換えておいてくださいね。
(外部からアクセスできる場合)
0194185->19102/04/10 00:52ID:???
>>192,193
有難うございます。
悪名高い「能」「表」文字をつかってぐりぐり動かしているのであれば
単に文字コードの問題で、それへの対処はperlで(初心者の頃より)さんざん
苦労したので想像がつくんですが、私の日頃の行いが悪いのか、接続時点で
つまり。。。
<?
$db = mysql_connect("localhost","hogeuser","password");
....
....
?>
とやって、実際にこの記述がされたページを読みこむと、この記述した箇
所に「sjis.confを用意しろ、ゴルア」みたいな内容のエラーメッセージ(
といっても処理が中断されるわけではない)がでて、当方でsjis.confを
手に入れるまでは、接続するたびにこのメッセージがでて困っていたのです。
 該当スクリプトを埋め込んだ.phpファイルの中にはHTML部分に当然日本語の
データを使っている箇所もありますが、localhostや接続ユーザー名やパスワ
ードには日本語を使うという厨房的非常識なことはしていませんし、この単に
データベースへ接続すると言うことに関しては、perlでのトラブルの体験が記
憶に無かった、と言うことだったのです。

 でもやっぱり、漢字コードについて分かっていないのかもしれませんね。
開発環境をEUC_JPに統一する方法をなんとか考えるか、mbstring()を勉強
してみます。

 ありがとうございました。

 (セキュリティ対応のご指摘も有難うございます >193)
0195nobodyさん02/04/13 17:13ID:KuNi6hxm
日付のチェックって
checkdate以外にないの?

'2002/04/13'ってデータを
checkdateでチェックするにはどうすればよいの?
0196nobodyさん02/04/13 18:20ID:KuNi6hxm
VBのIsDateみたいなやつがあったらうれしいなぁ。

checkdateだと、年、月、日に分割しないとダメなのが嫌なんですよね。
0197nobodyさん02/04/14 15:55ID:o4dlBvyu
PCから接続しているのか携帯から接続しているかを
PHPで判断するにはどうすればよいのん?
0198nobodyさん02/04/14 19:02ID:???
>>197
ホストで判断すればいいのでは?
0199nobodyさん02/04/14 19:41ID:???
PHPって最近のSQLで利用する日本語文字コードを固定できたような
0200nobodyさん02/04/14 21:04ID:6DHe9XM+
>>198
ホストで判断ってどうやってやるのん?
0201nobodyさん02/04/14 22:45ID:4+43mXog
>>200
http://jp2.php.net/manual/ja/language.variables.predefined.php
0202nobodyさん02/04/15 14:55ID:85MlnFuN
現在、>>153さんのように時間をmySQLに記録するスクリプトを書いています。
使用しているデータタイプは、timestampです。
$time=date("Y/m/d H:i:s");
で、上のようにゲットした時間をデータベースに記録して、
後でクエリーして取り出した時間を例えば「April 13, 2002」のように表示するにはどうしたらよいでしょうか?
「4/13/2002」でもかまわないのですが。
020320202/04/15 15:31ID:85MlnFuN
続きですが、データベースの中には
「20020412123456」という形で入っているわけです(これは2002年4月12日12時34分56秒を表します)
これをどうしたら、「April 12, 2002」とか「4/12/2002」で表示できるんでしょうか
0204nobodyさん02/04/15 16:26ID:qOdJXznR
>>202-203
http://jp2.php.net/manual/ja/ref.datetime.php
このあたりじゃダメですか?
020520202/04/15 17:33ID:85MlnFuN
>>204
どうもです。まだ試していませんが、select文でDATE_FORMAT関数を使えばできそうです。
こんな感じで。select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');

http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_toc.html#Date_and_time_functions
020620402/04/15 23:52ID:???
>>205
おお。どうもどうも。非常に参考になりました。
020719602/04/16 00:11ID:MlXylYBc
checkdate以外に時間チェックはないの?
0208すえぐぜく?02/04/18 18:13ID:QEUbZy/J
Apache + mod_php
0209すえぐぜく?02/04/18 18:18ID:QEUbZy/J
>208
すみません、書き終わる前に投稿してしまいました。
Apache + php4_module + MySQL をつかってます。
データベースに接続するときにパスワードが必要になりますが、
このパスワードを PHP スクリプト中に埋め込もうとおもっています。
(設定項目を集めたスクリプトを用意して)。

当然このスクリプトファイル、たとえば config.php のパーミッションは
600 になるわけですが、PHP はApache と同じユーザ (www) で
実行されるのでメインプログラム index.php から config.php を
読み出すことができません。

suExec 経由の CGI なら実行されるときのユーザは自分自身なので
問題ないのですが。

PHP に限ったことではありませんが、CGI ではなくてモジュールで
スクリプトを実行するときは、みなさんどうやって切り抜けてらっしゃるのでしょうか?
0210すえぐぜく?02/04/18 18:22ID:QEUbZy/J
過去スレの↓みたいなことで困ってるんですが、
どうやって何とかするんだろう、と。

447 名前: ◆wfMSpsRY 投稿日:2001/12/22(土) 15:31 ID:???
suexecみたく、ユーザ権限で動いてくれないと、
レンサバには導入し辛い。
php.iniとスクリプト作り手の工夫次第でsuexec対応
しなくても何とかなるけどね
0211 ◆wfMSpsRY 02/04/18 22:25ID:???
>>210

http://ebi.2ch.net/php/kako/982/982687820.html
188〜261辺りを読みませう。
今更だけど、PHPがsuexecに対応しなくてもって意味ね。

さて、私は188〜261ドレでしょうw
0212すえぐぜく?02/04/19 09:28ID:3KXoKyNv
safe_mode = on
safe_mode_exec_dir = "."
open_basedir , doc_root を適切に設定。

ということで対処するんですね。
んがしかし、結局 PHP がアクセスできるファイル
および PHP スクリプト自信は user = nobody ( or www)
がアクセスできるわけですよね?

とすれば、結局 ssh とかで普通にログインしてきたユーザには
それらのふぁいるを読まれてしまうと思うのですが…

やっぱその場合は CGI モードで動かさないとダメなのかな?
0213すえぐぜく?02/04/19 09:31ID:3KXoKyNv
http://ebi.2ch.net/php/kako/982/982687820.html の >207 より引用

> あ、でもPHPだけならいいですが、Perl等、他のCGI実行環境も
>提供している場合は、PHPだけで対応してもダメですね。

> PHP自身の機能として、スクリプトの所有者の権限で動くモード
>(sbitをみる)があってもいいと思うのですが、これは問題があるの
>でしょうか。

これは確かにそう思いますね。 Apache が root で動いてなくても
suExec できてるんだから、モジュールでもできると思うんですが…
うーん、悩ましい問題です。
0214すえぐぜく?02/04/19 09:49ID:3KXoKyNv
ここで気づきました。
当初は MySQL にアクセスするためのパスワードをスクリプトに埋め込んで
そのスクリプトを他の人に読まれたくない、という動機からここに書いたんですが、
もはや MySQL の話題から離れてしまったので別スレに逝きます。
でわ、失礼しました!

【PHP】質問スレッドPart3
http://pc.2ch.net/test/read.cgi/php/1013919792/
■ このスレッドは過去ログ倉庫に格納されています