PHP + MySQL
■ このスレッドは過去ログ倉庫に格納されています
0001ECY
NGNG0368hmk
02/10/15 13:47ID:???処理速度を稼ぐためだとか、プライバシーを守るためだとかいう理由があるのなら、加工されたデータをDBに保存しておいてもよいと思うが。
0369nobodyさん
02/10/15 21:32ID:V68LrvQrif (! $result) echo mysql_error();
$affectedRows = mysql_affected_rows($result);
という何の変哲もないコードなんですが、
affected_rowsの行でエラーになります。
delete自体は問題なく行われているのですが…
何故なんでしょう?
0370nobodyさん
02/10/15 21:55ID:???mysql_connectまたはmysql_pconnectの戻り値を渡すのでは?
0371nobodyさん
02/10/15 22:04ID:???仰る通りでした。
引数に結果IDと接続IDを取るパターンがあるんですね。
すべて結果IDと思いこんでいたのでかなり悩みました。
ありがとうございました。
0372さばかん
02/10/16 13:05ID:IQMQRi3ESQL構文にそのままユーザー入力血を入れるのはやめれ
「CGI」 と 「セキュリティー」で検索すれば
いろいろ参考資料が出てくると思うが
ここに出てるのはサンプルなんで
mysql_escape_string とか使ってないだけだよね……
本物ではちゃんとエスケープしてるよね……
0373nobodyさん
02/10/16 13:57ID:???とあるときに、
$a に 「');update t_hoge set comment='';」
とされるとか。
0374nobodyさん
02/10/17 17:54ID:UeoXfZ3yhttp://www.ipa.go.jp/security/awareness/vendor/programming/a02_01_main.html
0375nobodyさん
02/10/17 20:22ID:???0376nobodyさん
02/10/17 23:47ID:???0377nobodyさん
02/10/18 00:50ID:???hmkのテーブルをdropしまくりたかったのに。
0378hmk
02/10/19 01:36ID:???まだ自前のサイト作ってないからセーフでした。
今更ながら、漏れが仕事やってたときに作ったスクリプトではヤバいかも。
ちゅうことで、>>377君、直しておいてくだちい。
0379nobodyさん
02/10/25 21:04ID:8s4WkUQVmysql -u root
set password for root=('設定するパスワード');
flush privileges;
で最後のとこで
ERROR 1045 Access denied for user: '@localhost' (Using password: NO)
ってでてつまってます。
なんか他のユーザー作成とかなにかやろうとするとすぐ同じエラーがでてきちゃう
んですけど、だれかたすけて〜
0381PHP
02/10/31 10:48ID:Ey5wVXntデータ件数が50万件くらいの規模ならサーバスペックはどれくらい必要なの?
ピークは1時間に2000件くらいかな。
PHP+Apacheのサーバを別に立てて検索させます。
みなさまプリーズ!
0382nobodyさん
02/10/31 10:50ID:YIQwg1nb0385nobodyさん
02/10/31 13:21ID:???0386nobodyさん
02/10/31 14:08ID:???>ピークは1時間に2000件
なら、一件辺りは1.8秒だろ。
家のPentium 133MHzでも十分な結果を出せる
相当複雑な問い合わせをしない限り
で、複雑なことすんの?
0387PHP
02/10/31 14:43ID:Ey5wVXnt>>386
検索一覧と、検索集計です。
テーブルは2テーブル(マスタ、明細)を利用します。
SQLは以下の通りです。
・select * from detail where xxx= 999 order by yyy;
・select * from detail where xxx = 999 order by zzz ;
・select aaa,sum(bbb),sum(ccc) from detail where xxx = 999
group by ddd
order by sum(金額) ;
0389nobodyさん
02/11/04 00:32ID:laarhpsvMySQLとPostgreSQLで
table1
id
name
table2
id
date_from 期間はじめ
date_to 期間終わり
というテーブルで、
任意の日付がtable2の期間に引っかかる場合のtable1.name
を求めるにはどうしたらよいですか?
table1のidについてtable2で複数の期間が設定されています。
よろしくお願いします。
0390nobodyさん
02/11/04 00:50ID:???SELECT t1.name FROM table1 AS t1,table2 AS t2 WHERE t1.id=t2.id AND (NOW() BETWEEN t2.date_from ND t2.date_to) GROUP BY t1.name
こういうこと?
0391389
02/11/04 01:34ID:laarhpsvサンクスコ。
うまくできました。ありがとうございました。
0392nobodyさん
02/11/07 00:21ID:xJ2aD5Sd0393nobodyさん
02/11/07 00:32ID:???http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_Reference.html#BLOB
0394nobodyさん
02/11/07 18:20ID:Go7yQUbZテーブルA
会員番号 キー
名前
テーブルB
取引番号 キー
会員番号
取引年月日
取引額
取引内容
で、テーブルAに会員番号があってテーブルBにデータがない
(つまり会員登録があるが、取引がない)ものを
列記したいのですが、どうしたらいいですか。
0395nobodyさん
02/11/07 19:09ID:???0396nobodyさん
02/11/07 20:07ID:???それ以前に日本語を・・・ゲホゲホ
0397nobodyさん
02/11/07 21:02ID:py1Qds2+0398nobodyさん
02/11/07 22:02ID:???ぐぐっても有用な情報が見付からなかったんで、よろしければ教えて下さい;
最近PHPを始めた者で、多人数同時参加型のウェブゲームを作っています。
今までPerlでゲームを作る際、データを保存するにはテキストファイルを用いてましたが、
データ量やファイルアクセスが多い場合、データベースファイルの方が良いということを聞きました。
しかし、生まれてこの方データベースというものには一切触れたことがありません;
色々調べながら取り合えず動こうと思い、MySQLをインストールしたのですが、結局さっぱりです。
それどころかデータベースの概念(?)すらはっきりしていない状態です。。。
やりたいことは決まっているのですが、まず何を学べばいいか解らずに行き詰まっています。
上記のような使い方をする場合、まず何から手を付ければいいでしょうか。
参考になるサイトや書籍の紹介でも構いません、何かヒントを下さい;
お願いします。
0399nobodyさん
02/11/07 22:14ID:???ttp://www.hotwired.co.jp/webmonkey/backend/?tw=backend
「PHP/MySQLチュートリアル」
「はじめてのデータベース」
とかどうよ?
0400nobodyさん
02/11/07 22:23ID:cSdInRt3where テーブルA.会員番号 not in ( select テーブルB.会員番号 from テーブルB )
が使えればなぁ。。。
0401nobodyさん
02/11/07 22:49ID:???MySQLは触ったこと無いがOUTER JOINがつかえるようなので
SELECT テーブルA.* FROM テーブルA
LEFT JOIN テーブルB ON テーブルA.会員番号 = テーブルB.会員番号
WHERE テーブルB.会員番号 IS NULL;
とかできるんじゃねーの?
0403394
02/11/07 23:51ID:EWRqr+Ty私も最初それを試したのですが、エラーでした。他のDBMSではできたりするんですかねえ。
>>401
サンクスコ。できました。ありがとうございました。
0404nobodyさん
02/11/08 00:50ID:???http://www.wakhok.ac.jp/DB/DB.html
0405nobodyさん
02/11/08 01:08ID:Veqht0/QMySQLで、例えば
A B C
というフィールドがあるとして、C列にA列とB列を足した値を
入れておくことってできますか?しかも、A列とB列の値が変われば
自動的にC列の値も変わるというようにできますか?
やはりPHPなどのプログラムをかまさないとできないものでしょうか。
0406nobodyさん
02/11/08 01:39ID:???0407nobodyさん
02/11/08 10:05ID:OADrmVQDC列は不要。406のやり方でA+Bを取ってくればいい。
0408nobodyさん
02/11/08 10:40ID:???>>407
情報ありがとうございます。
例えばPHPで、そのA+Bを使用したい場合はどのようにすれば良いでしょうか?
フィールド名があれば、mysql_fetch_arrayを使用して
例えば、$a = $data['a']として扱えますよね。
でも、A+Bはフィールド名は無いですよね。
その場合は、mysql_fetch_rowを使用して、
$total = $data[2]と言うように設定して使用するべきでしょうか?
アドバイスお願いいたします。
0409nobodyさん
02/11/08 15:15ID:???0410渚
02/11/08 17:22ID:???SELECT a,b,a+b as c FROM hoge;
というようにasを使えばmysql_fetch_arrayでいけます。
お試しあれ。
0411nobodyさん
02/11/10 18:52ID:???0412nobodyさん
02/11/12 01:24ID:SsiSHuUc列Aと列Bをくっつけ、さらにcount(*)で数えて2以上あるデータを多い順から並べるということをやりたいのですが
なかなかうまくいきません。
mysql_query("select A_col,B_col as DATA1 ,count(*) as DATA2 from TABLE_1 group by DATA1 having DATA2 >=2 order by DATA2 desc");
↑は列B_colのデータでのみ集計してこなくて詰まっています。
---------------TABLE1の中身
A_col B_col
aaa 111
bbb 111
aaa 111
bbb 222
---------------
↑のデータで「aaa111 が 2」を出力したいのです。助けてくださいまし(;´Д`)
0413nobodyさん
02/11/12 01:49ID:TeIlFbWyfrom TABLE_1
group by DATA1 having DATA2 >=2
order by DATA2 desc
0415nobodyさん
02/11/12 14:59ID:???MySQLであるフィールドを全部取得し、
$sql = "select count from dataA
countフィールドの数字を合計したいと思い、
$reslut = array_sum (A,B,C,・・・) ; というのを調べてきたのですが、
$sqlを(A,B,C,・・・)というような配列にするのはどうしたらよいでしょうか?
教えて君でゴメンなさい。お願いします。
0418nobodyさん
02/11/13 00:58ID:???$sql = "select SUM(count) from dataA";
$result = mysql_query ($sql) ;
if (!$sql)
{ print("SQLの実行に失敗しました") ;
exit;
}
print ("<center>過去実績:<br>" . $result . "件。</font></p>") ;
0419nobodyさん
02/11/13 01:17ID:???お、おまえ、PHP+MySQL完全に初めてだな。
そんなんで$resultの中にSUM(count)の結果が入ってるなら
select userid,password,mail_address from user
とか実行したら$resultには何が入ってくると思う?
http://www.hotwired.co.jp/webmonkey/2000/01/index3a_page2.html
0420nobodyさん
02/11/13 02:12ID:???プログラム自体初めてに近いです。独学で試行錯誤で頑張ってます。
初心者にレスありがとうございます。
他の select 文は表示されるのですが、これは表示されないです。
0421419
02/11/13 02:29ID:???$result = mysql_query($sql);
if( $row = mysql_fetch_array( $result ) ){
print ("<center>過去実績:<br>" . $row[SUMCOUNT] . "件。</font></p>") ;
} else {
print ("失敗。") ;
}
こんなんでいけると思う。
というか入門書でも買った方がいいよ。
数千円のお金より垂れ流れていく時間のほうが大事っす。
0422nobodyさん
02/11/13 02:37ID:???データを抽出して、配列に格納して、print。大体この順序だし。
0424nobodyさん
02/11/17 21:14ID:uOvn3njtこれをlDate + lTime以下を条件に削除したいので
SQL文 Delete From table Where lDate < '2002-11-17' And lTime < '00:00:00' をmysql_query()で実行しますた。
でも削除されません。
エラーでてないようです。
何がいけないのでしょうか?
0425nobodyさん
02/11/18 00:13ID:IKSCnBSVあなたの頭...
時間を評価に加えたいなら、条件は次のようになるでしょ。
lDate < '2002-11-17' OR (IDdate='2002-11-17' AND lTime<'XX:XX:XX')
私ならこういうスケルトンは切らんけど。
0427nobodyさん
02/11/21 03:53ID:R8Yr+Jw9テーブルに(客ID、商品ID、個数)を入れます。(複数注文の場合はループで一つ一つ入れます。)
この場合、テーブルタイプはBDBとInnoDBどっちがいいでしょう?
厨な俺は今までMyISAMでロックなしでやってました…
0429nobodyさん
02/11/21 13:08ID:T4lGgkT+0430428
02/11/21 18:54ID:zV2T5Gzqソレを考えるのがプログラミングの醍醐味では?
DBを使わない、ファイルにログを書き込むタイプの掲示板なんかのロック処理を応用する。
0431427
02/11/22 16:23ID:???ご教授ありがとうございます。
PHPで処理してみます。(注文はアホみたいにきませんが・・・)
0432nobodyさん
02/11/24 21:18ID:9k1JVlB20433394
02/11/24 21:59ID:OWmSQ2+XEUC-JPとかUTF-8とかをつかってみる
0434nobodyさん
02/11/24 22:41ID:9k1JVlB2どうしても S-JIS にしたい場合はどうすればいい?
0436nobodyさん
02/11/25 08:15ID:Wgc+tEwe実害は無いのですが気持ち悪いので何かスマートに順番に並べる方法は無いでしょうか
0437bloom
02/11/25 09:16ID:Ou4iEOduhttp://www.agemasukudasai.com/bloom/
0438nobodyさん
02/11/25 13:42ID:JXdRZ3s0意味がよくわかんないんだけど、だったらdelete するな、と思うのはおれだけか?
0439nobodyさん
02/11/27 06:16ID:AyxusqCIMySQLでデータベースに日付を入力するDATEと時間を入力するTIMEというカラムを
つくったとします。
そして、DATEには2002-11-27とTIMEには00:00:00という行と、
DATEには2002-11-27とTIMEには00:10:00という行と、
DATEには2002-11-26とTIMEには00:00:00という行が入力されたとします。
これを古い順でソートしようとすると、order by DATEとつけることになると
思うのですが、時間の順ではソートできなくなります。どうすればいいんでしょうか??
どなたかご教授ください。よろしくお願いします。
0440nobodyさん
02/11/27 09:24ID:???ORDER BY DATE,TIME
0441439
02/11/28 01:03ID:bMROl6Clああ、それでいけるんですね。手元にある本にのってなかったので、、、
ちゃんとマニュアルよんどきます。
というかDATETIME型なんてあるんですね。
勉強不足でした・・・助かりました。修行に励みます。失礼します。
0442nobodyさん
02/11/28 12:31ID:+5GONPaTレコードの数字部分の最小の値を得たいのです。
例えば
AB-001
AB-002
AB-003
ならばAB-004を
AB-002
AB-001
AB-100
ならばAB-100を
得るようにしたいのですが、どのようにしたらよいでしょうか?
AB-001から順番に調べていくのでしょうか?
スマートな方法があればうれしいです。
宜しくお願いします。
0443nobodyさん
02/11/28 14:47ID:???ABってのが入ってるのと001が入ってるフィールドは別?
同じフィールドにハイフン区切りで入ってるの?
AB-xxxって値が入ってるの?全部AB?
最小なら上の例なら001、下の例なら002じゃないの?最大の間違い?
0444nobodyさん
02/11/28 15:21ID:+5GONPaTすいません。
日本語がわやな上に言葉がいろいろ抜け、さらに間違っています。
文字列レコード(primary keyを指定しています)
の数字部分の使用されていない最小の値を得たいのです。
例えば
AB-001
AB-002
AB-003
ならばAB-004を
AB-002
AB-001
AB-100
ならばAB-003を得たいです。
0445nobodyさん
02/11/28 15:21ID:+5GONPaT$record[] にレコードを全て取得しているとして
$prefix = "AB-"として、
for( $i = 1; $i <= count( $record ) + 1; $i++ ){
// 個数より2以上大きい数が最小となることはない
sprintf( $check_str, "%s%03d", $prefix, $i );
$check = true;
for( $j = 0; $j < count( $record ); $j++ ){
if( $record[j] == $check_str ){
$check = false;
break;
}
if( $check )
break;
}
echo $check_str;
スマートな方法があれば教えて下さい。
0446nobodyさん
02/11/29 00:30ID:???テーブル設計をみなおす
0447nobodyさん
02/11/29 23:10ID:kyVi4Psy調べてみると、
telnetで直接insertしようとしても、えんえん待たされる状態になりました。
同じdatabaseの他のtableにはinsertできるのですが…。
これはどのような原因が考えられますか?
0448447
02/11/29 23:47ID:kyVi4Psyselectは出来ますが、
telnetでeucの日本語が文字化けするので
ちゃんとできているのかはいまいち分かりません。
ロックはかけてませんが、テーブルが壊れることはない、
と過去ログにはあるし…なんなんでしょう?
0450447
02/11/30 02:33ID:???レスありがとうございます。
なんとも不可解だったのですが、
MySQLもインストールしてある/usrが
Apacheのログで100%Usedになっていたのが原因でした。
おさわがせいたしますた。
0451nobodyさん
02/11/30 08:11ID:67+5HzncみたいなPHP + MySQLの初心者向けのサイト教えてください。
0452nobodyさん
02/11/30 12:17ID:jN+HZDrEMySQLの導入
http://www.rfs.jp/server/mysql/index.html
PHP/MySQLチュートリアル
http://www.hotwired.co.jp/webmonkey/programming/php/tutorials/tutorial4.html
PHPマニュアル
http://www.php.net/manual/ja/
0453nobodyさん
02/12/01 18:22ID:???例えばアクセス解析スクリプトとか。
というのも、当方が使ってる解析スクリプトは Les Visiteurs なんですが、解析表示で MySQL の CPU 使用率が百パーセント近くになってしまうんです。
Win32 で MySQL をお使いの方、貴殿のマシンではどうですか?
0454nobodyさん
02/12/02 15:37ID:???自己レスです。
とりあえずprefixはテーブルの外に出して番号だけを入れるようにしました。
で、全検索しますた。お騒がせしました。
>>453
うちもそうなります。カーソルまで固まりますね。
現状はそういうもんかと思っていますが、、
0455453
02/12/03 21:32ID:???レスポンスありがとうございます。
そうですか。やはりWin32ではそうなるようですね。
PC-UNIXへの乗り換えを真剣に考えてみたいと思います。
0456nobodyさん
02/12/05 00:18ID:kQitN0HNwhileで回して毎回selectで読みに行くようなやり方でいいんでしょうか?
もっと上手いやり方とかありませんか?
0457nobodyさん
02/12/05 00:29ID:VZIKFHpLこういうことじゃなくて?>>456
0458nobodyさん
02/12/05 14:18ID:???質問があります。
PHP とか MySQL って、EUCだと思うのですが、
全て S-JIS で組みたいんです。
どうすればできるようになるのか教えてください。
0459nobodyさん
02/12/05 14:23ID:???0461nobodyさん
02/12/05 16:08ID:Z0U+Oe8ha.phpとb.phpがあって、それぞれmysql_pconnectでMySQLに接続しているとします。
その際、a.phpの接続をb.phpでも再利用してくれるのでしょうか?
それとも、a.phpで確立した接続は次にa.phpがリクエストされた場合のみ再利用されるのでしょうか?
0462nobodyさん
02/12/05 16:39ID:???0463nobodyさん
02/12/09 01:33ID:???相場はどのくらいよ?みんな自鯖なわけ?
0464nobodyさん
02/12/09 05:46ID:vvvONNMO携帯はEUCじゃないんで、少し気になったのですが、
MySQLに入れる文字列、S-JISで問題ないですか?
0465464
02/12/09 05:53ID:vvvONNMOEUCにしてからDBに入れる、
取り出してからSJISに変換…というやり方でいいのでしょうか?
0466nobodyさん
02/12/10 00:57ID:ZDH4nUdeたぶん正解。あとでトラブりたくないならそれがベストでしょう。
0467nobodyさん
02/12/10 21:21ID:1xJ1WsMKWin98にApache+PHP+MySQLをいれたのですが、
データベースのデータはDOSプロンプトからしか作成できないのでしょうか?
それと、
<?php
$link=mysql_connect("localhost","root","????");
if ($link==false) die("接続できてない");
print "接続完了!!";
mysql_close($link);
?>
このソースをWebにUPしたときは、"localhost"と"root"と"????"の場所には
何を記述すれば良いのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています