Jeans & Development:
Deprecated: Function strftime() is deprecated in /home/u109394186/domains/rad51.net/public_html/jeans/jeans/libs/blog.php on line 333
2006年 03月の記事

FancyURL もどき [Nucleus]

2006年3月31日

同様に、FancyURL も実現できた。

zlib解凍スピードテスト [プログラミング]

2006年3月30日

 PHP の zlib 関数 readgzfile() による表示スピードを計測。非圧縮のファイルの表示速度と比較した。

 ファイルとしては、このブログの表ページ(約50kb)を利用。圧縮ファイルは
<?php
fwrite(fopen('test.doc.gz','w'),gzencode(file_get_contents ('test.doc'),9));
?>
で製作(9の部分は圧縮率で、9で高圧縮、0で圧縮無し)。

ファイルの解凍とスピード計測は、
<?php
$before=time()+microtime();
readgzfile('test.doc.gz');
$after=time()+microtime();
echo $after-$before;
?>
で行った。

Mod_Rewrite もどき2 [Linux]

2006年3月30日

 ベターな方法を見つけた。今度は、以前使っていた mod_rewrite とかなり互換性がある。

Mod_Rewrite もどき [Linux]

2006年3月27日

 現在使用中のプロバイダ、nifty のラクーカンでは、Mod_Rewrite が使用できない。メールで問い合わせてみたが、やはり駄目のようである。
 以前使っていたサーバでは、Mod_Rewrite を多用していただけにつらいところである。何か手はないかと探ってみたら、完全ではないものの、一つ解決方法を見つけた。『Redirect』『FilesMatch』なら使えるようなので、これを使用した。

INTERVAL翻訳 [Nucleus/SQLite]

2006年3月20日

ADDDATE(date,INTERVAL expr type)  
DATE_ADD(date,INTERVAL expr type) , DATE_SUB(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type) 

SHOW FIELDS FROM翻訳 [Nucleus/SQLite]

2006年3月20日

SHOW FIELDS FROM
nucleus_itemの場合
CREATE TABLE `nucleus_item` (
  `inumber` int(11) NOT NULL auto_increment,
  `ititle` varchar(160) default NULL,
  `ibody` text NOT NULL,
  `imore` text,
  `iblog` int(11) NOT NULL default '0',
  `iauthor` int(11) NOT NULL default '0',
  `itime` datetime NOT NULL default '0000-00-00 00:00:00',
  `iclosed` tinyint(2) NOT NULL default '0',
  `idraft` tinyint(2) NOT NULL default '0',
  `ikarmapos` int(11) NOT NULL default '0',
  `icat` int(11) default NULL,
  `ikarmaneg` int(11) NOT NULL default '0',
  PRIMARY KEY  (`inumber`),
  UNIQUE KEY `inumber` (`inumber`),
  KEY `itime` (`itime`),
  FULLTEXT KEY `ibody` (`ibody`,`ititle`,`imore`)
) TYPE=MyISAM PACK_KEYS=0;

SHOW KEYS FROM 翻訳 [Nucleus/SQLite]

2006年3月19日

kosugiatkipsさんに教わった命令で、MySQL の『SHOW KEYS FROM』に相当する部分が見えてきた。キー(インデックス)の作成は、SQLiteでは、

CREATE INDEX 'ibody' ON 'nucleus_item' ('ibody','ititle','imore')");

のようにすればよい。この書式をテーブルから読み出すには、

$res=sqlite_mysql_query("SELECT sql,name FROM sqlite_master WHERE type = 'index' and tbl_name = 'nucleus_item' ORDER BY type DESC");
while ($a=sqlite_mysql_fetch_assoc($res)) foreach($a as $key=>$value) echo "$key=>$value</br>\n";

で良いらしい。実行結果の例は、次の通り。

sql=>CREATE INDEX 'itime' ON 'nucleus_item' ('itime')
name=>'itime'
sql=>CREATE UNIQUE INDEX 'inumber' ON 'nucleus_item' ('inumber')
name=>'inumber'
sql=>CREATE INDEX 'ibody' ON 'nucleus_item' ('ibody','ititle','imore')
name=>'ibody'
sql=>
name=>(nucleus_item autoindex 1)

PostgreSQL [Nucleus/SQLite]

2006年3月17日

戯れに、PostgreSQLでもラッパーが作れそうかどうか、調べてみた。一番のポイントは、SQL Query中で使えるユーザ関数が定義できるかどうかである。

NOT NULL の問題 [Nucleus/SQLite]

2006年3月17日

MySQL で "NOT NULL" のカラムに NULL を指定してデータを挿入しようとすると、『MySQL ではエラーを生成するのではなく、カラムを '最適可能値' に設定』するらしい。SQLiteではエラーになる。でもこの MySQL の仕様、バグの温床にならないのかな?

(追記)SQLiteのバージョンによって違うのか、コンパイルオプション或いは、設定によって違うのか、ここのラクーカンのSQLiteではエラーが出なかった(ローカルのコンピューターにインストールしたSQLiteではエラー)。
<<前の記事