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

PHP + MySQL

■ このスレッドは過去ログ倉庫に格納されています
0001ECY NGNG
そろそろPHP + MySQLについても語ってほしい脳
0002echo NGNG
ソレハドウカナ?
0003初期不良 NGNG
my もほとんど扱い方としては pg と変わらないの?
両方インストール済んでこれから試そうってところなんだけど。
0004初期不良 NGNG
あ、Postgre の方はそこら辺に公開されてた掲示板 PHP スクリプトで
試してみたんですけど、重くて掲示板には向いてないと思ったので...
0005名無しさん@お腹いっぱい。 NGNG
myとかpgとか中途半端な略はやめようよ。
厨房くさくてかなわん。
0006名無しさん@お腹いっぱい。 NGNG
イヤ、わかりやすくていいよ。うん。
0007union使えないの? NGNG
とりあえず打倒pg??
0008名無しさん NGNG
打倒とか言うと荒れますよ。

女の子と話していて、他の女の話をすると異常に機嫌が悪くなることがある。
「なんで他の女の話を持ち出すの?」とかって。
それと同じ感じで、PostgreSQL の話をしている時に、Oracle などとの比較を
持ち出されると過剰反応する女々しい人が多いので気をつけましょう。
0009名無しさん@お腹いっぱい。 NGNG
>>8
DBの話をしているのに、なんで女の話を持ち出すの?
00108 NGNG
>>9
荒れるともったいないので。
と思ったけど、よけい荒れちゃいそうだね。ごめんね。
さぁ、続けて下さい。
0011名無しさん@お腹いっぱい。 NGNG
陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部
陰部陰部陰部陰部陰部陰部●部陰部陰部陰部陰部陰部陰部
陰部陰部陰部陰部陰部陰部●部陰部陰部陰部陰部陰部陰部
陰部陰●陰部陰部陰部陰部●部陰部陰部陰部陰●陰部陰部
陰部陰部●部陰部陰●●●●●●●陰部陰部●部陰部陰部
陰部陰部陰●陰●●部陰部●部陰部●●陰●陰部陰部陰部
陰部陰部陰部●部陰部陰部●部陰部陰●陰部陰部陰部陰部
陰部陰部陰●陰部陰部陰部●部陰部陰部●部陰部陰部陰部
陰部陰部陰●陰部陰部●●●●●部陰部陰●陰部陰部陰部
陰部陰部●部陰部陰●陰部●部陰●陰部陰部●部陰部陰部
陰部陰部●部陰部●部陰部●部陰部●部陰部●部陰部陰部
陰部陰部●部陰●陰部陰部●部陰部陰●陰部●部陰部陰部
陰部陰●陰部陰●陰部陰部●部陰部陰●陰部陰●●●陰部
陰●●●陰部陰●陰部陰部●部陰部陰●陰部陰●陰部陰部
陰部陰部●部陰●陰部陰部●部陰部陰●部陰●部陰部陰部
陰部陰部●部陰部●部陰部●部陰部●陰部陰●部陰部陰部
陰部陰部●部陰部陰●陰部●部陰●部陰部陰●部陰部陰部
陰部陰部陰●陰部陰部●●●●●陰部陰部●陰部陰部陰部
陰部陰部陰●陰部陰部陰部●部陰部陰部陰●陰部陰部陰部
陰部陰部陰部●部陰部陰部●部陰部陰部●部陰部陰部陰部
陰部陰部陰●陰●●部陰部●部陰部●●陰●陰部陰部陰部
陰部陰部●部陰部陰●●●●●●●陰部陰部●部陰部陰部
陰部陰●陰部陰部陰部陰部●部陰部陰部陰部陰●陰部陰部
陰部陰部陰部陰部陰部陰部●部陰部陰部陰部陰部陰部陰部
陰部陰部陰部陰部陰部陰部●部陰部陰部陰部陰部陰部陰部
陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部

0012名無しさん@お腹いっぱい。 NGNG
日本MySQLユーザ会
http://www.mysql.gr.jp/
0013名無しさん@お蝮いっぱい。 NGNG
MySQLユーザ会が何ヶ月か前に出した本をすごく期待して
買ったけど、なんかいまひとつでした。
「詳しくはマニュアル参照しろ」ばかりなんだもん。
だから今はマニュアル見てます。
0014名無しさん NGNG
最近買った本に「MySQLはデータを更新するユーザーが少ないところで
多くのデータを検索したい時にはベストの選択だが、多くのユーザーが
一度に登録を行うような場合は、他のRDBMSが向いてる」とありました。
2chのような掲示板をMySQLで作るのは向いてないのでしょうか?
0015名無しさん@お腹いっぱい。 NGNG
>>13
初心者むけだから...
>>14
ロックが弱いから...だがな、プログラマーの力量がそこで大きく試されるぞ。
0016名無しさん NGNG
例えばどういう点ですか?<力量
0017名無しさん@お腹いっぱい。 NGNG
工夫すればいいだけってこと。
あとは考えて。
0018名無しさん@お腹いっぱい。 NGNG
MySQLを./configureするときに、
変数のサイズをチェックするところでこけるんだけど、
対処法知らない?

ちなみに、同じ現象がIRIXとFreeBSDで発生した。
0019初期不良 NGNG
何でマンモス本にも日本語マニュアルとか
http://www.asakawa.ne.jp/doc/php/ja/sjis/ref.mysql.html
にも mysql_dbname() が載ってないの?
無いわけないだろうと思って検索かけてみて見つけたけど...
mysql_db_name() だったりして、まあどっちでも動くわけだけど
この辺ってどうなってるの?
0020電動ナナシ NGNG
PHP サイトがリニューアルしたね。ずいぶんすっきりした。

>>19
本家のページに出てないから仕方が無いんじゃない?
http://www.php.net/manual/en/ref.mysql.php
0021名無しさん@お腹いっぱい。 NGNG
>>16
わかりやすい一例ね。普通はさ
1.ロック
2.更新
3.アンロック
とやるわけでしょ。MySQLの場合は、このロックしてから放すまでの時間を最
小限に抑えないとダメ。あと、極力ロックしない努力も必要。
とりあえずロックしておけって方針だと、簡単に使い物にならなくなるよ
MySQLにはlast_insert_idとかreplaceとか、あるいはget_lockとかロック
しないための機能がいっぱいあるので、考えよう
002216 NGNG
PHP+MySQLを始めて間もないためよくわかりませんが
これまで明示的?なロックは使ったことがないです。
持ってる本には書いてなかったし。
last_insert_id、replace、get_lock を調べてみます。
002321 NGNG
>>16 >>22
おーい。だめじゃーん
MySQLはフツーのデータベースと違って明示的にロックしないと何もロックして
くれないよー

俺がさっき書いたget_lockとかは中級以上の知識だけれど、基本はちゃんと抑え
ないとダメ
基本はあくまで、更新されちゃ困るレコードはロックすることだよ。
MySQLの実際のロックはlock tablesで行うので、こいつを勉強しよう。
get_lockとは名前は似てても全然違うので注意。

それで、ロック中の処理をできるだけ短くするように心がけよう。よほど
アクセスの多い場合でなければ、これで対応できるはず。
002416 NGNG
ありがとうございます。
これまで、insert や update などがそれほどないものしか作った
ことがなかったので、偶然うまくいってただけだったようですね。
このままいってたら今後やばかったです。
勉強になりました。
0025名無しさん@お腹いっぱい。 NGNG
>>23
>俺がさっき書いたget_lockとかは中級以上の知識だけれど、基本はちゃんと抑え
>ないとダメ

別に煽るわけではないが、
ロックの知識なんて、基礎中の基礎だと思うが...
0026初期不良 NGNG
lock tables だとタイムアウト無しで延々と待つらしいけど
これが問題なのか?俺も MySQL 使い始めなり
0027初期不良 NGNG
って書いちゃったけどとりあえずこれ読みます
http://www.softagency.co.jp/mysql/Manual/html/manual.ja_Performance.html#Table_locking
002816 NGNG
>ロックの知識なんて、基礎中の基礎だと思うが...

本に載ってたサンプルとかしか見てなかったわけです。
で、ロックなんて書いてなかったので、MySQLがロックしてくれるんだ
と勝手に思ってました。
とりあえず、lock tables xxx write;と
unlock tables;入れて確認してます。
間にsleep()してテストしてますが、いいんですよね。
私もマニュアルちゃんと読もうかと思います。
ためになる煽りは歓迎です。よろしゅう。
002921 NGNG
>>25
そうなんだけれど、それを知らずに作っちまう奴もいる。俺が前に
あるサイトの運用を引き継いだときに、まるでロックのこと意識し
てないつくりになってて、データの不整合がおきまくりで、空いた
口が塞がらなかった。

>>26
問題としては、テーブルごとロックしか出来ないっていうのが第一
の問題。一人のユーザしか更新できないでしょ。
第二の問題がタイムアウトできないことだね。
mysql_pconnect()で接続して、ロックしている間に落ちるよう
なプログラムを書くとロックしっぱなし・・・これはPHP3の話だ
けどね。PHP4は使ってないのでわかんない
0030電動ナナシ NGNG
>>29
ロックがタイムアウトしないのか・・・そりゃひどいねえ。

マニュアル読むと、
・接続が閉じられるか、当該プロセスが Lock を発行しない限り Lock は有効
・他のプロセスの Lock 要求はタイムアウトなしで待たされる
みたいだね。ううむ。

プログラムが落ちて httpd も一緒に落ちていれば問題ないけど、そうじゃない
場合(エラーによる異常終了)とかは問題だよねえ。

当面の回避策としては、
・pConnect は使わない
・適当な(アプリケーションから使わない)テーブルをいくつか用意して、
 スクリプトの先頭で lock/unlock する(そうすれば直前のロックが解除される)
 # httpd のプロセス数だけテーブルを用意して、互いに lock するテーブルが
  重ならないようにランダムに割り当てる
という感じになるのかな。
0031名無しさん@お腹いっぱい。 NGNG
get_lock()はタイムアウトを設定できるよ
ただ、こいつは別にデータそのものをロックするわけじゃないという曲者
「こういうデータを更新するときには、こういう文字列でget_lock()を
かける」とかって、明確なルールを作る。
頻繁にかかる更新はget_lock()で、そうでない更新はlock tablesでなん
ていうのも面白いと思う
0032名無しさん NGNG
いまいちイメージが湧かないのですが、頻繁に更新するようなものって
例えばどのようなものがありますか?
サイトの例などあります?
0033名無しさん@お腹いっぱい。 NGNG
lock を使わなければいいのですよ。
これの本当の意味がわかる奴は少数だと思うけども、
わからない奴は1週間くらいじっくり考えてみな。
それでもわからない奴は、オラクル使った方がいいよ。金かかるけど。
0034名無しさん@お腹いっぱい。 NGNG
ヒントおくれ。
0035名無しさん@お腹いっぱい。 NGNG
ヒント1:ロックすると遅い
0036名無しさんX NGNG
約2日かかってlockの意味がわかった。
これでぼくも中級?
0037名無しさん@お腹いっぱい。 NGNG
>>32
Webに限った話をすると、頻繁にupdateと言うのは少ないかもね
例えば、会員サイトでの会員情報の更新とかはどう?
規模が大きければ、かなりの頻度だと思うが・・・

>>34
マニュアルにヒントっぽいことが書いてあったと思った
0038名無しさん@お腹いっぱい。 NGNG
PostgreSQLの方はロック処理いらないの?
0039電動ナナシ NGNG
>>37
これのこと?
http://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Compatibility.html#Commit-rollback

今の MySQL には Transaction 機能あるから、ロックにこだわる必要性はあんまり
ないと思うんだけど、Transaction に何か問題があるの?

>>38
Transaction 機能 (begin/commit/rollback) 使えばよい。
0040名無しさん@お腹いっぱい。 NGNG
>>39
MySQLてトランザクションを有効にするとパフォーマンスが落ちるって
小耳に挟んだけど、どうなんだろ。
0041名無しさん@お腹いっぱい。 NGNG
自分はトランザクションを利用しないケースを逆に知らないので、
トランザクションなしで作れって言われたら怖いなぁ。
あと、トランザクションがあってもロック関係の知識はいるでしょ。
DBMSによってまちまちだと思うけど。
0042名無しさん@お腹いっぱい。 NGNG
トランザクション使う初心者はオラクル使え
0043名無しさん@お腹いっぱい。 NGNG
なんで、トランザクション使うのは初心者なのか意味不明
0044anonymous NGNG
春休み厨房の煽りだろ、どうせ。
0045名無しさん@お腹いっぱい。 NGNG
>>40
というか、もともと参照が中心だからテーブルロックしか
ないんじゃなかった?PostgreSQLは標準で行レベルロック
だから、頻繁に参照がある仕組みとかだと、意外と快適。
MySQLも最近トランザクションが取り入れられたみたいだけど、
やっぱり実績が無いのが不安だよね。
0046名無しさん@お腹いっぱい。 NGNG
MySQLのトランザクションって、参照の一貫性の機能はあるの?
Begin Tran した時点のデータのみを参照してくれるって機能。
参照の一貫性というのかどうかは知らないのだが。。。
0047電動ナナシ NGNG
MySQL の実装は分からないけど、用語についてだけ。

DirtyRead (Commit 前のデータが見えてしまう) や、Read Commited
(Commit 後のデータは見えるが、それ以前のは見えない) や、Serializable
(繰り返し Query をかけて同じ結果が得られる) といったやつだよね。
隔離度 (Degree of Isolation) というみたい。
『データベースチューニング 256 の鉄則・下巻』(日経 BP) p.335
 http://bpstore.nikkeibp.co.jp/item/main/148222805860.html
『トランザクション処理システム入門』(日経 BP)
 http://bpstore.nikkeibp.co.jp/item/main/148222802680.html
が参考になると思う。
0048電動ナナシ NGNG
>>45
MySQL の機能ってよりも、MySQL が依存している SleepyCat's Berkeley DB の
機能だよね。BerkeleyDB に Transaction 機能が入ったら MySQL で Transaction の
サポートが可能になったという表現のほうが正しいんじゃない?
http://www.sleepycat.com/docs/ref/txn/intro.html

以前 Zend か MySQL のサイトで MySQL のエンジンに Zend Engine 組み込んで
トランザクションとストアドプロシージャをサポートするってコメントを見たけど、
あれはどうなったんだろう。
0049名無しさん@お腹いっぱい。 NGNG
>>48
細かい話だけれど、MySQLがBerkley DBを使うようになったのは
トランザクションを実装したかったからじゃないんだっけ?
もとからBerkley DBを使ってたわけじゃないよね?
0050名無しさん@お腹いっぱい。 NGNG
>>40 >>45
ええと、トランザクションを使うためにはテーブル作成のときにはBDBという形式
を選択しないといけないんだけれど、このテーブル形式っていろいろとダメなとこ
ろも多いみたい。
MyISAM(デフォルトテーブル形式)よりは遅いですとマニュアルにはっきり書いて
あるし、痛いのがvarcharとかTEXTなどのカラムにインデックスを作れないことかな?
ちなみにMyISAMでvarcharのカラムにインデックス作って検索するとめちゃめちゃ速
いよ

個人的にはMySQLを使うのならBDBを使うのはあんまり賢くないように思う。
トランザクションが欲しいのならOracleなりSybaseなりがいいのでは?
0051名無しさん@お腹いっぱい。 NGNG
http://www.mysql.com/information/crash-me.php
の結果の最後のほうの
max table row length (without blobs)
table row length with nulls (without blobs)
ってなんでしょう?
0052電動ナナシ NGNG
>>51
max table row length ってのは、テーブルの各行(列数は任意)でサポート可能な
バイト長ってこと。例えば PostgreSQL 7.0 だと max table row length は
7949 ってなってるけど、これは例えば
CREATE TABLE hoge (aText VARCHAR(7950));
CREATE TABLE hoge (aText VARCHAR(4000), aText2 VARCHAR(3950));
というテーブルを定義して使えないということ。前者は一つのフィールドだけで
7949 バイト超えているし、後者は 2 つのフィールドを合計すると 7949 バイトを
超える。
CREATE TABLE hoge (aText TEXT);
ってのは作れるけど、いざ 7950 バイト以上のレコードを挿入しようとすると
エラーになる。

table row length with nulls ってのはよく分からん。
blob っては Binary Large Object のこと。画像とかファイルとかそういった
大きなものを想像して欲しい。通常 blob はレコード長の制限が大幅に緩和
されている。
0053名無しさん@お腹いっぱい。 NGNG
null 付きだろ、単に。
0054電動ナナシ NGNG
CREATE TABLE (hoge TEXT NOT NULL);

CREATE TABLE (hoge TEXT);
でレコード長が変わる実装ってことなの?

それともそういう意味じゃないのかな?
分からない。鬱だし脳。かぜで朦朧とする・・・。
005546 NGNG
>>47

そうそう。
電動ナナシさん、貴重な情報ありがとう。
0056名無しさん@お腹いっぱい。 NGNG
1bit使うしな
005751 NGNG
電動ナナシさん、ありがとう。納得。
「最大の列の長さ」
まさか最大レコード数だったらどうしようかと思ったっス。馬鹿ですね。
レコード数は、ファイルサイズ限界までと考えてよいのでしょうか?

0058名無しさん@お腹いっぱい。 NGNG
マニュアルに書いてあるだろ、それくらい。
そんなくだらないこと質問すんな。
0059はぁ NGNG
DSOで PHP4 + MySQL やろうと思ってコンパイルして起動したら
下のエラーで起動できなかった。
Slackware3.6(Kernel2.2.16)だったんで MySQLインストール
する際に linuxthreads-0.7.1.tar.gz 組み込むまえまでは
正常に PHP4 を DSO で起動できてたんで、なんかファイル
かきかわっちゃたかな。解決策わかるひといる?

Apache1.3.14 + SSL1.42 + Mysql3.23.35 + PHP4.0.4pl1 + jstring
+ linuxthreads-0.7.1 + SlackwareLinux3.6(Kernel2.2.16)

コンパイルは正常終了、起動すると下のエラー
PHP4をスタティックにApacheに組み込むとコンパイル中にエラー
/usr/local/apache/bin/httpsd: can't resolve symbol '__secure_getenv'
Syntax error on line 209 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/libexec/libphp4.so into server: Unable to resolve
symbol
/usr/local/apache/bin/httpsdctl start: httpsd could not be started

0060電動ナナシ NGNG
OpenSSL 入れなおしてみたら?
0061名無しさん@お腹いっぱい。 NGNG
>60
どうもありがとう。
OpenSSL(openssl-0.9.6)を含め Apache,PHP4 ひととおり
コンパイル、インストールしなおしてみましたがダメでした・・
0062電動ナナシ NGNG
それって glibc の関数みたいだね。Google で "__secure_getenv" で調べると
いろいろ出てくるよ。

PHP3 でこのエラーが出るって質問もあった。その回答は「PHP の問題じゃあ
なさそうだね」だった。

glibc のヘッダファイルとライブラリのバージョンがあってないんじゃないかな。
glibc 全体を入れなおしてみたらどうなるかな。
006359です NGNG
以下のファイルを上書きしてみたのですが、今度はApacheとPHP4が
コンパイルできなくなってしまいました。
glibc1.tgz
(glibc-2.0.7pre6 runtime support This package contains the
shared libraries, binaries, and support files required to
run most Linux applications linked with glibc.)
glibc2.tgz
(glibc-2.0.7pre6 internationalization files International
support files for glibc -- installed in usr/share/i18n.)

libc-5.4.46.bin.tar.gz
ld.so-1.9.11.bin.tar.gz
libg++-2.7.2.8.bin.tar.gz
gcc-2.7.2.3.bin.tar.gz


Apache 1.3.14のmake途中のエラー
.o -lm -lcrypt -ldbm -ldl -L/usr/local/src/openssl-0.9.6 -lssl -lcrypto
ld: warning: libc.so.6, needed by /usr/lib/libcrypt.so, may conflict with libc.s
o.5
./gen_test_char >test_char.h
make[3]: *** [test_char.h] Error 139
make[2]: *** [subdirs] Error 1
make[2]: Leaving directory `/usr/local/src/apache_1.3.14/src'
make[1]: *** [build-std] Error 2
make[1]: Leaving directory `/usr/local/src/apache_1.3.14'
make: *** [build] Error 2

※Googleで同様のエラーを見つける事ができたのですが解決策
 ではありませんでした。(英語サイトなのでもしかしたら間
 違っているかも)


PHP4.0.4pl1のmake途中のエラー
-DAPACHE_SSL -DXML_BYTE_ORDER=21 -g -O2 -c main.c
In file included from /usr/local/src/php-4.0.4pl1/ext/standard/php_standard.h:21
,
from main.c:52:
/usr/local/src/php-4.0.4pl1/ext/standard/basic_functions.h:137: #error Need type
which holds 32 bits
make[2]: *** [main.lo] Error 1
make[2]: Leaving directory `/usr/local/src/php-4.0.4pl1/main'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/php-4.0.4pl1/main'
make: *** [all-recursive] Error 1
0064名無しさん@どっと混む NGNG
>>63
そこまで環境がボロボロなんだったら、OS ごと再インストールだろう。
0065名無しさん@お腹いっぱい。 NGNG
Apacheのコンパイルエラーは
シンボリックリンク下のように適当にやったら
とりあえずコンパイルできた。
libresolv.so.1 -> libresolv-2.0.7.so

libresolv.so.2 -> libresolv-2.0.7.so


あとはPHP4の下のエラーがなんとかなればうまくいきそうな
気がするんだけど。
PHP4.0.4pl1のmake途中のエラー
-DAPACHE_SSL -DXML_BYTE_ORDER=21 -g -O2 -c main.c
In file included from /usr/local/src/php-4.0.4pl1/ext/standard/php_standard.h:21
,
from main.c:52:
/usr/local/src/php-4.0.4pl1/ext/standard/basic_functions.h:137: #error Need type
which holds 32 bits
make[2]: *** [main.lo] Error 1
make[2]: Leaving directory `/usr/local/src/php-4.0.4pl1/main'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/php-4.0.4pl1/main'
make: *** [all-recursive] Error 1

めんどくさいのでできれば再インストールはさけたい・・といっても
4日ほどなやんでるから再インストールしたほうがよかったかも。
もう少し粘ってみます。
0066名無しさん@お腹いっぱい。 NGNG
もう諦めろ。無理。
0067名無しさん@お腹いっぱい。 NGNG
ラチあかなかったんで FreeBSD4.2R に入れ替えました。
風呂入って寝ます。
0068名無しさん@お腹いっぱい。 NGNG
つーか、メジャーなディストリビューションにすれば?
出来ない?
0069名無しさん@お腹いっぱい。 NGNG
>68
Vineでパッケージを使ったらすぐに設置できたよ。
0070名無しさん@お腹いっぱい。 NGNG
>>67
FreeBSD + MySQLってどうなの?
Linuxでは非常に安定しているけれど、どっちかというとFreeBSDのほうが好き
なんだよね。誰か情報くださいなー
0071名無しさん@お腹いっぱい。 NGNG
問題なかったですよ。
0072名無しさん@お腹いっぱい。 NGNG
Download(15) Web制作(13) perl・CGI(40) PHP(8) 初級ネット(3)
という感じに、トップページに「カテゴリ(登録数)」を数十個リアルタイムで
表示させたいのですが、こういう場合、どのようにするのがよいでしょうか。
$count = mysql_numrows($result);を延々書くのは間違いですよね?
数時間ごとの集計みたいな感じでもよいのですが。
0073Error 401 NGNG
mysqlのことは良く知らないけど、
create table categories (
category_id integer,
category_name varchar
);
create table category_info (
category_id integer,
topic_num integer
);
みたいなテーブルを作って、
トピック(スレッド)を追加、削除する度にtopic_numを+-して、
それを表示すればよいと思う。

# mysqlの型は知らないので適当です。
007472 NGNG
ありがとうございます。
一度、そのような感じでやってみます。
0075名無しさん@お腹いっぱい。 NGNG
itemテーブルなるものがあるとして
select categories.category_name, count(items.itemid) from categories,items where categories.category_id=items.category_id
でしょ
0076Error 401 NGNG
>>75
そのほうが、正統な方法ですね。
>>73 は、高負荷なWebサイトをイメージしたものです。
集約関数を使っても、十分実用に耐えうるなら、75の方法のほうが
良いですね。
007775 NGNG
>>76
なるほど、そこまでお考えの上でのことか。失礼しました。
確かに75ではパフォーマンスがでませんね。
0078名無しさん@お腹いっぱい。 NGNG
高負荷なら、毎回SELECTしにいくような設計はダメですよ。
個人のレンタルサーバーだったらいいけど。
DB 触ると、うれしくて、なんでも DBでやりたくなっちゃうけど、
車買ったのがうれしくて、近所のコンビニも車でいくようなもんで、
DBを使わない、本来の小回りの利くやりかたってのを忘れちゃだめです。
0079名無しさん@お腹いっぱい。 NGNG
mysqlのnow()って何?
0080名無しさん@お腹いっぱい。 NGNG
>>78
うっ....。肝に銘じます。
0081chba1822.ppp.infoweb.ne.jp NGNG
TEST
0082弱い者の味方、2001/04/19(木) 18:32ID:KaxNGoIA
ホームページを作ったものの、まったくアクセスが上がらな
くて悩んでいる人のためにお役に立ちましょう。
効率よく宣伝できる共有宣伝掲示板を18個設置しました。
全部宣伝して回ればなんと1,000以上の掲示板にカキコしたこ
とになり即、効果が期待できます。
しかも共有しているサイトの多い順に並べてますので
上から順に10個ほどの掲示板に宣伝しただけでも
結構な宣伝になりますよ。
さあ、今すぐここからアタック!!

http://home9.highway.ne.jp/cym10262/
0083名無しさん@お腹いっぱい。2001/06/27(水) 04:16ID:Kn9EPYTU
MySQLでindexのないテーブルにdeleteかけるんだけど、
マッチするレコードがあるのに、そのレコードが削除されない。
もしかして、一意なフィールドがないとdelete効かないの?


---+------+------+--------
A | B | C | D
---+------+------+---------
10 | 100 | abc | NULL
---+------+------+---------

これで、
delete from test where A=10 and B=100 and C='abc'
ってやるんだけど。
0084名無しさん@お腹いっぱい。2001/06/27(水) 04:18ID:???
c='abc' って使えるの知らなかった…。
0085電動ナナシ2001/06/27(水) 07:16ID:???
select * from test where A=10 and B=100 and C='abc';
で当該列が選択される?
'abc' が 'abc ' (空白つき) だったりしない?
0086名無しさん@お腹いっぱい。2001/06/27(水) 10:02ID:???
apache+PHP+MySQL+英辞郎で辞書サーバを作りたいのですが、
どこかに参考になるサイトありませんか。
0087名無しさん@お腹いっぱい。2001/06/27(水) 13:21ID:pN4jLQ3E
MySQL+PHPで雑誌文献のDB作ってます。入力するときは
2001年1月号、2月号・・・12月号の12個のCheckBoxから登録し、
データは例えば「2001年1月・2001年2月・2001年11月」の様に
一つのフィールドに格納します。
その後修正するときのために、またCheckBoxに効率的に戻す
方法はないでしょうか?
私が考えたのは、if else文を12個きちんと書くことしか思いつかない
のです。
0088名無しさん@お腹いっぱい。2001/06/27(水) 13:47ID:RdD8UBLs
>>87
「2001年1月・2001年2月・2001年11月」って文字列を、格納してるの?
それは、テーブルの設計がヘンだと思われ。
0089872001/06/27(水) 14:08ID:pN4jLQ3E
>変て、12個の内容を一つのフィールドに格納することですか?

そうしないと、12個のフィールドできてしまう。
表示する際は「2001年1月・2001年2月・2001年11月」という
文字列を見たいんですもの・・・。

さらなるアドバイスきぼーん。
0090Error4012001/06/27(水) 14:37ID:2vjnwCDU
>>89
> そうしないと、12個のフィールドできてしまう。

どうしても一年分を一レコードにしたいなら、一フィールドに全部入れるよりも、
こっちのほうがマシですね。

でも一番いいのは、12レコードに分けること。
0091872001/06/27(水) 14:56ID:pN4jLQ3E
>12レコードに分けること。
???
この著者は「2001年1月・2001年2月・2001年11月」号に執筆した
というのをDBに入れているわけで、雑誌がメインではないので、
12レコードに分解するのは意味不明。

月ごとにフィールドを作ってもいいのですが、
(janu/enum('Y','N'), ・・・Dece/enum('Y','N'))
その際は87の方法より大変になりそうと思われ・・・。
0092Error4012001/06/27(水) 16:15ID:???
ああ、そういうことをやりたいんですね。

僕だったら、

著者コード
掲載雑誌コード
掲載年月

みたいなテーブルにすると思うけど(上の例だと3レコードになる)、それがイヤなら、
一つの列に「2001-01:2001-02:2001-11」とか入れて、自分でパースするとか。

>その際は87の方法より大変になりそうと思われ・・・。

僕はそうは思わないけど、大変だと思うのなら87の方法でやれば?
0093名無しさん@お腹いっぱい。2001/06/29(金) 14:58ID:???
>>87 素朴な疑問。
12個のチェックボックスって、年をまたぐ連載はどうしてるの?
0094872001/06/29(金) 17:23ID:???
>93
1999年は12個
2000年は12個・・・と作ってきたのよん。
毎年一回すごくめんどそうだから、
できるだけうまい方法を考えているのよん。
今までは、ファイルメーカで動かしてきたんだけどね。
0095名無しさん@お腹いっぱい。2001/07/02(月) 11:00ID:E3hgF41I
>>94
>毎年一回すごくめんどそうだから、
>できるだけうまい方法を考えているのよん。

一生考えてろ(藁
0096名無しさん@お腹いっぱい。2001/07/02(月) 17:28ID:???
あんたおかしいよ
0097名無しさん@お腹いっぱい。2001/07/02(月) 21:27ID:???
>>94 手をつける前にRDBの入門書読んで考え方を転換したほうがいいと思われ。
0098名無し2001/07/03(火) 01:10ID:K4qWcRq.
*雑誌テーブル
雑誌ID(ユニーク)
掲載雑誌コード
*年月テーブル
雑誌ID(リンク?)
掲載年月

例の場合、雑誌1につき、年月テーブルにレコードが3つ出来る。
間違ってる?
0099名無しさん@お腹いっぱい。2001/07/03(火) 16:13ID:???
アナタハミステラレマシタ。ゴシュウショウサマデス。
0100972001/07/04(水) 10:37ID:???
雑誌IDと雑誌コードは同じモノでしょ。

まともにやったら、雑誌、記事、著者、掲載年月がそれぞれ別のテーブルになるんじゃないの?
「ある雑誌に掲載された記事全部」という軸で見るつもりがなければ、雑誌テーブルはなくてもいいけど。
0101名無しさん@お腹いっぱい。2001/07/30(月) 11:23ID:DpI/j/kI
ブラウザーから「データの追加」のようなボタンを作って、
ファイルを選択し、mysqlimportと組み合わせてタブ(もしくはcsv)
のデータをテーブルに流し込みたいのですが、
ご存じの方いらっしゃいましたら方法を教えてください。
■ このスレッドは過去ログ倉庫に格納されています