PHP + MySQL
■ このスレッドは過去ログ倉庫に格納されています
0001ECY
NGNG0215すえぐぜく?
02/04/19 09:54ID:3KXoKyNvhttp://pc.2ch.net/test/read.cgi/php/983250751/209-213
から飛んできました。
Apache + mod_php を使っています。
データベースにアクセスするパスワードなんかをスクリプトに埋め込んで、
そのスクリプトを他のユーザに詠まれないようにしたい、ということです。
CGI なら suExec で user=www ( or nobody) => user=ore に
権限を変更できるので、パーミッション 600 で OK なんですが、
モジュールの場合は user = www ( or nobody) のままなので
600 にはできないです。
結局
safe_mode = on
safe_mode_exec_dir = "."
open_basedir , doc_root を適切に設定。
を適切に設定することで何とかなりそうかな、ということだったんですが、
それでもパスワードを含むスクリプトを 600 にはできないですよね?
となると、ssh とかでログインして作業している他のユーザには
読まれてしまうわけで……
まだあんまりやったことないですが PHP を CGI として動かそうかな、とか。
0216すえぐぜく?
02/04/19 09:55ID:???ごめん、つづけてこっちに書いちゃった…
鬱だ…
0217nobodyさん
02/04/20 21:10ID:???構成めちゃくちゃ
内容貧弱
動作は速くていいんだけどね・・・
0218nobodyさん
02/06/01 09:47ID:akzfNCGw「MySQL&PHPでつくろう!Webデータベース構築ガイド」を参考にMySQLの文字コード
をujis(EUC)に設定すると、日本語の文字数も正しくカウントできますね。
なぜかその設定をすると、DOS窓からMySQLもMySQLAdminも起動しなくなってしまいます。
これは解決できるでしょうか?
0219phpBB2
02/06/01 22:09ID:bHoxoQKAhttp://www.pons-factory.com:8080/phpBB2/
http://nisimoto.s5.xrea.com:8080/phpBB2/index.php
http://adventure.s11.xrea.com:8080/phpBB2/
http://cybermobius.no-ip.com/bbs/
http://chiron.s2.xrea.com:8080/phpBB2/
0220phpBB2
02/06/01 22:14ID:bHoxoQKA0221Power
02/06/11 19:21ID:xg55fsn9あるのですか?
ない場合、どのようにして連番を取得するのですか?
0222nobodyさん
02/06/12 02:21ID:ByyI73VkOracle知らないんだけど、順序って
insertした順番に付くレコードの番号の事?
それだったら、フィールドの型を
int auto_increment primary key
にすればよい
0223Power
02/06/12 20:15ID:RK99k1q3Oracleの順序とはおっしゃる通り連番を返すものです。
私がやりたい事は、変数に連番を入れる事です。
SELECT 順序名.NEXTVAL
INTO :変数名
FROM DUAL;
Oracleではこのようにすれば変数に連番をセット出来ます。
で、この変数を使い色々処理を行いたいのです。
MySQLでは型に自動に連番を振ってくれるものがあると聞いています。
この場合、変数に連番をセットする事は可能でしょうか?
0224nobodyさん
02/06/12 20:28ID:???0225nobodyさん
02/06/25 00:08ID:clASTtZbデータの型はBINARYでよろしいのでしょうか?
Permission deniedが出てきてしまうのですが???
0226nobodyさん
02/06/25 00:53ID:???マルチ
回答不要
http://pc.2ch.net/test/read.cgi/php/987560391/86
0227nobodyさん
02/06/26 22:43ID:RPzx9bH+これかな
http://www.softagency.co.jp/mysql/Manual/html/manual.ja_Tutorial.html#example-AUTO_INCREMENT
0228nobodyさん
02/07/05 13:19ID:sTJoXJtl同じテーブル定義のテーブルを分散しているのですが、
その分散したテーブルを一つのテーブルにしたいのですが、
なにか方法はありませんか?
0229nobodyさん
02/07/05 22:12ID:???マルチ
回答不要
http://pc.2ch.net/test/read.cgi/php/1011683282/36
0230nobodyさん
02/07/06 00:39ID:Dg/qr5jp教えてあげて
0232nobodyさん
02/07/06 05:33ID:???ボランティアの方?
0234nobodyさん
02/07/06 14:31ID:???0235nobodyさん
02/07/23 03:19ID:cyKC/Zg5http://allabout.co.jp/computer/database/closeup/CU20020307/index.htm?FM=glcct
にある
SQL> select job,count(job) from emp group by job order by count(job) desc;
ってのはMysqlでは駄目ですか?
調べると
SQL> select job,count(job) as count-job from emp group by job order by count-job desc;
て書かなきゃ駄目っぽいんですけど?
0236nobodyさん
02/07/23 13:56ID:???count(job)ってのはフィールドじゃないからダメ。
count(job) as count-jobは明示的なフィールド名を持たせていて
その結果をsortする指定だからOK。
MySQLに限らず基本事項だろ。
0237nobodyさん
02/07/23 19:39ID:et0aznNL【ウェブサーバーに影響を及ぼす『PHP』の欠陥】
http://japan.cnet.com/Enterprise/News/2002/Item/020723-4.html?me
0238nobodyさん
02/07/23 22:15ID:/btI2V00手動で番号を振っている列の最大値を取得したいだけなのですが、本を参考にこう書きました。
$result=mysql_query("SELECT * FROM hogehoge order by number desc limit 1");
$rows=mysql_num_rows($result);
if($rows==0){}else{while($row=mysql_fetch_array($result)){echo $row["number"];}}
これで目的は果たせてるのですが、もうちょっと簡単な書き方…というか方法ないでしょうか?
0240nobodyさん
02/07/24 02:54ID:???$result=mysql_query("SELECT * FROM hogehoge max(number)");
$rows=mysql_num_rows($result);
でnumberが一番大きなレコードだけが取り出せる
0241240
02/07/24 02:59ID:???$result=mysql_query("SELECT max(number) as maxnum FROM hogehoge");
$rows=mysql_num_rows($result);
$row=mysql_fetch_array($result);
で、
$row["agemax"]に最大値が入ってる
0242241
02/07/24 03:02ID:???$row["agemax"]→$row["maxnum"]ね
自分のスクリプトからコピペってそのまんまだった
逝ってきます
0243238
02/07/24 17:23ID:???ありがとうございます。
$result=mysql_query("SELECT max(number) as maxnum FROM hogehoge");
$row=mysql_fetch_array($result);
echo $row["maxnum"];
で出来ました。かなりすっきりして嬉しい限りです。
本当にありがとうございます。
0244ロリ
02/07/24 22:29ID:o7AisP6C欲しいけどルートが分からない初心者にもやさしく
“とにかく安く、そして確実に”
少女の道草、マニア撮りロリータ・・・etc.
サンプルはタダでした。良かったらみてください。一日しのぎのネタには
なると思います。今ならおまけもレアなあります。数に限りがあるんでお早めに。。
http://up.to/muke
0245初期不良
02/07/26 06:13ID:???count(hoge) は指定がなければ count(hoge) as count になる。
一回 order 無しで出力させてみればわかる話だろ。
よってこれで逝ってよし。他の DB でも同じ。
select job,count(job) from emp group by job order by count desc;
0246nobodyさん
02/07/27 20:43ID:???入力データのチェックはどのようなことをすれば大丈夫なのでしょうか?
0247nobodyさん
02/07/29 21:36ID:DzCwMCFnLinux+PHP+MySQLに移行しようと思っています。mdb形式のテーブル
からデータをMySQLに移すにはどうやったらいいのでしょうか?
0248nobodyさん
02/07/30 18:47ID:???ふつ〜は addslashes () と ereg_replace () との組み合わせで OK のはず。
$user_name = addslashes ($_POST['user_name']);
$user_name = ereg_replase ("",";*",$user_name);
$sql = "select * from user_data where user_name=....以下略
ってな感じ。
0250nobodyさん
02/08/02 22:57ID:mm5hI6aiなるほど。なんか難しい処理を想像していたのですが、それで
解決しそうです。
0251nobodyさん
02/08/03 03:11ID:uQ0/1o1fC のコードは見つかったけど、php の実装って何も考えないオンメモリ
のヤツしか見つからない。
0252nobodyさん
02/08/04 22:38ID:FmVTsZMs$user_name = ereg_replase (";*","",$user_name);
こうだよね。
0254nobodyさん
02/08/06 22:52ID:nNpJo1Dzマジっすか。
初心者なんですが、テーブル作るの面倒だけど、
かねやんのMySQLAdminでテーブルだけ作って、cseで
csvから読み込みかな、と思ったんだけど。
Accessから、MySQLのテーブルにアクセスする手もあるから、
そっち経由での取り込みもありかな。
0255nobodyさん
02/08/06 23:43ID:???Accessで元ファイルを開いてエクスポートすればいい。
テーブルの回数分繰り返す必要があるけど、わりと楽な方法だと思う。
0256254
02/08/07 20:16ID:y8G64wf5>>Accessで元ファイルを開いてエクスポート
おお、そりゃ凄いって思ってやって見たんだけど、
「ODBC呼び出しが失敗しました」エラーが出ちゃうんです。
MySQL用のドライバは登録済みで
MySQLからのテーブルのリンクや更新は出来るんですが、何が原因なんでしょ?
0257nobodyさん
02/08/07 21:18ID:???他に何かメッセージ出てない?
Access2000→MySQL3.23.42(MyODBC-SJIS2.50.29.00と2.50.39.00)なら問題なくできてる。
MySQL側のデータベースにエクスポートするテーブルと同じ名前のテーブルが
あるとかいう落ちじゃないよね?
あとはODBCの登録のユーザの権限が足りないとか。
0258254
02/08/07 23:44ID:y8G64wf5Access2000→MySQL3.23.49Max debug OS WinMe
あ、ODBCが安定版と3.51版二つ入ってるから、それかな?
どっちもeucのパッチ当ててるけど、3.51版じゃ、アクセスにリンクして
開いたとき、文字化けしちゃったんですよ。安定版なら問題無かったです。
同じテーブル名では無いです。ユーザ権限は、インストール直後の
匿名ユーザが生きてるので、それで入ってます。
0259254
02/08/08 00:18ID:???「ODBC呼び出しが失敗しました」
[MicroSoft][ODBC Driver M (#0)
てなメッセージ。
MySQLにリンクしたテーブルは見えていて、更新も出来る状態です。
0260nobodyさん
02/08/08 19:23ID:???Accessのヘルプでものってない?
接続に失敗してるような気もするけど・・・
0261nobodyさん
02/08/23 21:30ID:XKTv55iv0262nobodyさん
02/08/23 21:46ID:???http://www.ipa.go.jp/security/awareness/vendor/programming/a02_01_main.html
dbiを理解しようとしてたので解らなかったのでした
0263nobodyさん
02/08/29 18:57ID:hMlp4ywr0264nobodyさん
02/08/29 20:29ID:???0265nobodyさん
02/09/01 05:16ID:ViCsMguiこれからMySQLを使おうと思っているのですが、
iモードでもMySQLは使えるのでしょうか?
よろしくお願いします。
0266nobodyさん
02/09/01 09:18ID:???0267みかか ドキュモ
02/09/01 09:23ID:???0268nobodyさん
02/09/01 20:01ID:RgHbazF4php+MySQLで、i-Mode用サイトを作り、i-Modeでアクセスすることは出来ます。
# EzWeb用も作ってくれ
0269nobodyさん
02/09/04 01:49ID:bvAr4qMV・トランザクションが無い
・福問合せができない
・トリガも使えない
こんなのデータベースと呼ぶのか?
RDMNSが使いこなせないDQNが使う代物じゃねーの?
0270PostgreSQL使い
02/09/04 02:17ID:JM4qWSZC> ・トランザクションが無い
Use MySQL-MAX
> ・福問合せができない
> ・トリガも使えない
使わなくて済むようにプログラム書け、というのが
MySQLの主張です。
> こんなのデータベースと呼ぶのか?
> RDMNSが使いこなせないDQNが使う代物じゃねーの?
MySQLは、いわゆる「RDBMS」ではなく、「SQLで入出力できるストレージ」と
考えて使うのが正しいような気がします。
0271nobodyさん
02/09/04 05:26ID:USu456uJDBというものに最近はじめて触れました。
ゲームのようなものを作っています。
アカウントごとに、アイテムを持たせます。
そのアイテムの個数は、可変です。
このようなアカウントごとの所有アイテム情報をDBに保持したい時、
どのようにやるのがベストでしょうか?
0272nobodyさん
02/09/04 11:11ID:???DBを使わないで、ファイルに保存するとして、アイテムの数を可変にするならどうする?
勝手に妄想してみると、アイテムの種類が多いor今後増えそうなら
id,アカウント名,パスワード,ハンドル,レベル,gold,・・・,アイテム数文字列
と言うようにしておいて(1レコード=1アカウントとする)、
「アイテム数文字列」に "アイテム1,アイテム2,・・・"と、カンマ区切りの文字列にしておく。
ただし、アイテム数でランキング表示するなどはやりにくい。
0273nobodyさん
02/09/05 00:36ID:uSX7DJwq配列を一つのカラムに入れるのはどうなのか?
と思っていたのですが、
それもアリなんですね。
0275271
02/09/05 01:12ID:???272さんへのレスでした。
0276nobodyさん
02/09/05 02:03ID:???アイテムの数や種類をその都度updateするんなら
きっちりと定期的にバキュームしてやらないと
DBが大きくなるぞ。
それより、テーブルを分散した方がよい。
ユーザー情報テーブルと、アイテムテーブルに。
アイテムテーブルには、
|ユーザーID|アイテム1|
|ユーザーID|アイテム2|
の様に・・・
ユーザー情報の方が大切なんだから、頻繁に更新しないほうが良い。
0277nobodyさん
02/09/06 14:30ID:???普通に考えれば、
アイテムID, ユーザID のフィールドを持ったテーブル用意して
そこにがつがつ詰め込んでいくんじゃない?
全アイテムに固有のID持たせるのか、アイテム種ごとにID持たせるのか、
とか、仕様によっていろいろ変ってくるだろうけど。
0278nobodyさん
02/09/06 20:14ID:EPlc0hR1id カテゴリ
+-+---+
|0| A |
|1| A |
|2| B |
|3| B |
+-+---+
1・カテゴリで分類して
2・分類内では ID が一番大きいやつ
をとりだしたいのです。
欲しい結果
+-+---+
|1| A |
|3| B |
+-+---+
で、この場合SQL はどうなるんでしょうか?
SELECT id,`カテゴリ` FROM `表` GROUP BY `カテゴリ`
とかやってみたんですが、2番目の条件がうまくいきません
おしえてください
0279☆
02/09/06 20:17ID:zUklKDWISELECT max(id) , カテゴリ FROM 表 GROUP BY カテゴリ ;
ダメっぽいかな??
0280nobodyさん
02/09/06 20:28ID:EPlc0hR1すんません、それでうまくいきます(^^;
本当にしたかったのはじつはこんなことなんです
id カテゴリ 名前
+-+---+------+
|0| A |あああ|
|1| A |いいい|
|2| B |ううう|
|3| B |えええ|
+-+---+------+
1・カテゴリで分類して
2・分類内では ID が一番大きいやつ
を
3・名前欄付きで
とりだしたいのです。
欲しい結果
+-+---+------+
|1| A |いいい|
|3| B |えええ|
+-+---+------+
0281nobodyさん
02/09/06 20:29ID:EPlc0hR1MYSQLなのよ(;´д⊂)
0282nobodyさん
02/09/06 20:32ID:EPlc0hR1SELECT MAX(id),`カテゴリ`,`名前` FROM `表` GROUP BY `カテゴリ`
とやると
+-+---+------+
|1| A |あああ|
|3| B |ううう|
+-+---+------+
になります
02838月のクリスマス ◆zzfy/JR2
02/09/06 20:47ID:zUklKDWI>SELECT MAX(id),`カテゴリ`,`名前` FROM `表` GROUP BY `カテゴリ`
これって GROUP BYの式がありません
というエラーが出ませんか???
02848月のクリスマス ◆zzfy/JR2
02/09/06 20:50ID:zUklKDWIもっと良いやり方はあると思うけど
select a.*
from (select max(id) id from test_tbl group by cat) b,
test_tbl a
where a.id = b.id ;
こんな感じでどうでしょうか???
0285nobodyさん
02/09/06 21:09ID:EPlc0hR1ありがとうございます。MySQL なんで副問い合わせができないんですよね(;´д⊂)
シンタックスエラーが出ます
ちなみに、282 の式だと エラーは出ません。
MySQL では GROUP BY にないフィールドでも普通に選択できます。
ただ、グループ内のどれが選ばれるかわからない諸刃の剣
グループ内で値がそろってるときには便利なんですが
0286nobodyさん
02/09/07 12:01ID:???どうよ?
0287nobodyさん
02/09/10 10:05ID:JRVUQPEU挿入がうまくいきません。コードは以下です。
【PHP】質問スレッドでたずねたのでマルチになりますが。。。
/**
* インサートテスト
*
* @access public
* @param ProductState $ps 製品状態情報
*/
function insert3($ps)
{
// DB接続
$this->connect(); // $this->db = DB::connect( $dsn )にて取得。
// SQL文
$sql = "INSERT INTO user (id,name,date) VALUES (?,?,?)";
// Statement取得
print "date=" . date("Y-m-d H:i:s",time()) . "\n";
$stmt = $this->db->prepare( $sql );
// SQL発行
// $this->db->execute($stmt, array($ps->id,$ps->name,time())); //これもだめでした。
$this->db->execute($stmt, array($ps->id,$ps->name,date("Y-m-d H:i:s",time()) ));
// DB切断
$this->db->disconnect();
}
※日付は現在時刻を挿入する。
※Access2000(MySQLでありません)のデータ型→日付/時刻型 (書式:yyyy/mm/dd HH:mm:ss)
※日付型以外(文字列、数値型)はうまくいきます。
エラー内容
SQLエラー → ステートは37000
0289287
02/09/10 14:38ID:20uIzqy9とりあえず。現状、テーブルに規定値 「Date()+Time()」が入るようにしていますが、これからことを考えて知っておく必要があるのです。
0290nobodyさん
02/09/10 14:39ID:20uIzqy9すいません。288は 280に対する答えでした。
申し訳ありません。
0291nobodyさん
02/09/11 23:36ID:thYL5S/gありがとうございます
特に処理が重くならないようなら...
メモリにいったん取り込むのはどうなんだろう、という気はします
0292nobodyさん
02/09/12 11:07ID:8CV8MtvhLIKE '%(ア%' AND 'ア%' など。
どなたか教えてください。
よろしくお願いします。
0293M
02/09/12 17:59ID:???DBに格納されている文字と検索文字の文字コードは同じになってる?
0294271
02/09/15 05:59ID:b9MOuSqZありがとうございました。
アドバイスを参考にして設計しなおしました。
ユーザー情報とは別に「所有アイテム情報テーブル」を作って、
所有者ID
番号(所有者IDごとに連番)
アイテムID
その他…
の列を作ります。
削除/取得時のレコードの処理をすっきりさせるため、
アカウント作成時に、
アイテム最大所持可能数分のレコードを、あらかじめ番号を振って作っておきます。
(まとめて並べておいた方が検索が速くなるんじゃないかという事も期待して)
アイテム取得時には、
アイテムID=nullで一番若い番号のレコードに、情報を書く。
アイテム削除時には、
当該レコードのアイテムIDをnullにする。
検索速度を上げるために、ユーザーIDでインデックスを作る。
というようなものです。
これは妥当でしょうか?
0295nobodyさん
02/09/16 05:55ID:???>アイテム最大所持可能数分のレコードを、あらかじめ番号を振って作っておきます。
>(まとめて並べておいた方が検索が速くなるんじゃないかという事も期待して)
updateをしたら、見た目には並んでても、データベースの内部的にはバラバラになっていきます。
それに、アカウント取るだけ取って利用しないユーザーも居るはず。
今現在使ってるレコード以外、作る必要なし。
ま、MySQLなら相当なレコード数じゃ無い限り、スピードの事は考えるな。
インデックスも、レコード数が少なければ逆効果という罠。
0296nobodyさん
02/09/18 10:52ID:uXrI3/gA>インデックスも、レコード数が少なければ逆効果という罠。
まぢですか!( ̄□ ̄;)!!
実際、どれくらいから効率的なのでしょうか?
0297294
02/09/19 10:36ID:+XOYWduWそうなんですかー。
DBの速度とか負荷が未経験なので、
かなり臆病なプログラミングになってる感じなんですが、
そんなに細かい気を遣う必要もないんですね。
0298名無しさん@そうだ選挙にいこう
02/09/19 10:57ID:D+O6nPi3調べてもわかりません。教えてください。
0299nobodyさん
02/09/19 22:38ID:jD2DR/iO外注してください。
お願いします。
0300nobodyさん
02/09/20 00:57ID:???>MYSQLにデータを書き込む時ってロックはいるの?
データの整合性を保つため、基本的に必要。
ただし、CGIなどでファイル書き出しと読み込みでかち合うために、
ファイルを壊す、といった事は無い。
0301nobodyさん
02/09/20 14:10ID:???>CGIなどでファイル書き出しと読み込みでかち合うためにファイルを壊す
こんな事ってあるの?
同時書き込みだけだと思ってたが…
0302nobodyさん
02/09/20 23:44ID:???ファイルを壊す、といった事は無い。
0303nobodyさん
02/09/21 08:50ID:0HoT4fY5selectした値をPHPで++してupdateするのではなく、
一文のSQLで書くことはできませんか?
0304nobodyさん
02/09/21 16:29ID:???PHPそのものの機能にはないですよね?
自前でプールクラス用意するしかないのかな
0305300
02/09/21 16:56ID:???>ファイルを壊す、といった事は無い。
そうだね。ファイルの中身が壊れる、だ。
>>303
update test set value=value+1 where id=1
0306nobodyさん
02/09/21 20:15ID:bcr2D3RXを使った無料検索エンジンスクリプトって
どこかにないでしょうか?
アクセスランキングじゃない奴です。
0309あぼーん
NGNG0310nobodyさん
02/09/24 16:49ID:???∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д` ) < 通報しますた!
/, / \_______
(ぃ9 |
/ /、
/ ∧_二つ
/ /
/ \ ((( ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ /~\ \ ( ´Д` ) < 通報しますた!
/ / > ) (ぃ9 ) \_______
/ ノ / / / ∧つ
/ / . / ./ / \ (゚д゚) ツーホーシマスタ!
/ ./ ( ヽ、 / /⌒> ) ゚( )−
( _) \__つ (_) \_つ / > (・∀・)ツーホー!
0311うんこ
02/09/27 12:51ID:s5yVUu+t持続的接続のことでしょうか?
http://www.php.net/manual/ja/features.persistent-connections.php
http://www.php.net/manual/ja/function.msql-pconnect.php
0312304
02/09/28 00:48ID:c3sX3Ag2>>311
あ、ありがとう。いつも普通にmysql_pconnect()使ってるのに
まったく気づいてなかった・・・。
たしかにこれでいけてるようですね。
今度時間があれば負荷はかってみます。
0313nobodyさん
02/09/28 01:40ID:AP2KcdnO0314名無しさん@そうだ選挙にいこう
02/09/28 10:59ID:???おう!がんがれ!
■ このスレッドは過去ログ倉庫に格納されています