fc2ブログ
いつまで続くのか、何を書くのか、それもまた流れのままに 頭の中にまとまらないものがあるから そんなのがふと出た時に書いていく
僕のネット帳
htmlファイルの自動生成して所有者権限を自分にする
2008-05-05-Mon  CATEGORY: MySQL
mysqlを使ってweb上からの投稿データをサーバー上にhtmlファイルとして生成、保存しようとしたわけです。
生成先のフォルダのパーミッションを777にして作成。
htmlファイルの生成自体はテンプレ作って、それ利用して作り出すだけだったんで簡単なんですが、問題は生成されたファイルにあったわけです。
ファイルの所有者がapacheになっていて、他のphpファイルを読み出せないみたいなんですね。
モジュール版phpで作成されたらユーザー名がApacheになるのかな。
さて、困ったということでweb上をうろついてたらこんなん見つけたんで覚書。

XREAなど、chownを完全に制限しているサーバーの場合は、生成したファイル自体の再作成を行う必要があるらしい。
サーバー上のファイルを一旦、自分のパソコンに保存して、サーバー上のファイルを消してから保存しておいたファイルをFTPでアップロードすればとりあえずは解決する。
ただ、面倒くさすぎるのでCGIで再作成をしたいわけです。
手順はこんな感じらしい。
モジュール版PHPでApache権限のファイルのパーミッションを666などにする。
CGIでファイルをメモリに読み出し、ファイルを削除する。
同じ名前のファイルを作成して書き込み、パーミッションを適切に直す。
CGIはhttpから呼び出す必要があって、cronなどでジョブ化するのが普通だそうで。

追記。
むしろ最初からphpをCGIとして動作させてhttpから呼び出してファイル生成すれば問題ないですね。
スポンサーサイト



ページトップへ  トラックバック0 コメント0
mysqlで作成済みのテーブルに新しくフィールドを追加する。
2008-05-03-Sat  CATEGORY: MySQL
mysqlでデータベース操作しているとテーブルに新しい要素を追加したくなることがある。
そんなmysqlにおいて既に作成したテーブルにフィールドを追加する場合のコマンド。
alter table テーブル名 add 列名 データ型

んで、データ型の後ろに「first」を入れれば最初に追加。
「after 列名」を入れればその列名の後ろに追加。

ちなみにレコードの追加は、
INSERT INTO テーブル名 VALUES(?, ?, ?, ?, ?)でOK。
ページトップへ  トラックバック0 コメント0
mysqlの既に作成済みのテーブルにフィールドを追加する。
2008-05-03-Sat  CATEGORY: MySQL
mysqlでデータベース操作しているとテーブルに新しい要素を追加したくなることがある。
そんなmysqlにおいて既に作成したテーブルにフィールドを追加する場合のコマンド。
alter table テーブル名 add 列名 データ型

んで、データ型の後ろに「first」を入れれば最初に追加。
「after 列名」を入れればその列名の後ろに追加。

ちなみにレコードの追加は、
INSERT INTO テーブル名 VALUES(?, ?, ?, ?, ?)でOK。
ページトップへ  トラックバック0 コメント0
mysqlの条件式についてwhereの<>
2008-04-29-Tue  CATEGORY: MySQL
データベースを行き当たりばったりでやってたらselect where文の中に<>というのが出てきた訳ですね。
意味がわからんで、少し困って捜してたんですけど、等しくないって意味らしい。
ということで比較演算子の覚書。
= 等しい
> より大きい
< より小さい
>= より以上
<= より以下
<> 等しくない
!=ならよく見るんだけどね。
適当にやってると単純なものを知らなかったりするから困る。
ページトップへ  トラックバック0 コメント0
フェッチモードとgetAll
2008-04-22-Tue  CATEGORY: MySQL
getAllはデータベース内のテーブル内容を取得する。
//総データを配列で取得
$dbh->setFetchMode(DB_FETCHMODE_ASSOC);
$result = $dbh->getAll('SELECT no,data,name FROM tablename');

こんな感じで記述。
no,data,nameはテーブル内のキーワード。
tablenameはそのままテーブルの名前。

setFetchMode(DB_FETCHMODE_ASSOC)はフェッチモードといって配列の取得の仕方を変えるような感じ。
これをしない場合、
echo $result[0][0];
echo $result[0][1];
という感じで読み取ることになる。

これがフェッチモードで指定すると、
echo $result[0][no];
echo $result[0][data];
という感じで読み取れる模様。
ページトップへ  トラックバック0 コメント0
<< 2024/03 >>
S M T W T F S
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -


余白 Copyright © 2005 僕のネット帳. all rights reserved.