MySQL」タグアーカイブ

接続状況・容量が厳しい無料サーバーにWordPressを使う

無料レンタルサーバは、無料で気軽に使えるのはいいのだが、環境状況が結構な問題だったりする。
『容量する少ない』のはあるあるとして、『接続時間が短くすぐタイムリミット』だの悪環境。

今回は『ぶっとびねっと(buttobi.net)』を使う。
このぶっとびねっとは一定の負荷がかかると『High load CGI detected.』と出て処理を停止。
このボーダーがかなり低い。

インストール・使用共に、このネックになってくる。
公式には使えるって書いてるんだけども…嘘だろってレベル。

使うための手順を記載しておく。
※2012年現在の状況。自己責任でどうぞ。
続きを読む

PHP4.4+MySQL4.0にWordPressを入れマルチサイト化

無料レンタルサーバは最新の状態とは限らないどころか、なかなか厳しい環境になることが多い。
個人裁量も多く早々更新されない…むしろ更新を期待してはいけない…。
だから無料なのだ。無料にはいつも理由があるのだ。
自動で広告貼っているんだから、ユーザいなくなっても困ると思うのだけどね…
そんな厳しい環境でも入れなきゃいけないときってあるのです。

今回はPHP4.4+MySQL4.0という100MBサーバにWordpressを入れマルチサイト化します。
PHP5.2って説明ページに書いてるのに!くそう!
続きを読む

phpMyAdminでテーブルをコピーする

dumpみたいなもん
「old_DB」のコピーを「new_DB」という名前で作りたいとする。

phpMyAdminで「old_DB」を選択
→「操作」タブを押下
→「データベースをコピー コピー先」に「new_DB」と入力。
→「構造とデータ」を選択、他も値の追加の設定
→実行

としたときに

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL serve version for the right syntax to use near '1001 DEFAULT CHARSET = sjis' at line 10

なんてエラーが出たとしてもとらねばならんときの対応方
続きを読む

phpMyAdminで文字コードを変更

携帯サイトを作るにあたり、大体無難にSJISを使う。
正しくはSJIS-WINというものなのだが。
だからDBもSJIS。

MySQL4.X・phpMyadmin4.X系はSJIS管理がしやすくなってるが、
今更このバージョンはないかなぁと思うが、
MySQL5からはphpMyAdminのデフォルトver5.X系だから、UTF-8がデフォルト。
形も変わってるしで管理しづらくなっちゃうのね。

でもテスト環境作るのに、わざわざバージョンダウンしたくないし、
環境設定も変えたくない の 対応策。

解決策

mySQLにログインして

show variables like "char%";

で文字コードを確認したら明らかだったので、my.cnfを変更。
MySQLのcharsetをutf8に変更する方法
※my.cnfがない場合があるが、なければ作って大丈夫。
つまるとこphpMyadminの文字化け対応だね。

SET NAMES cp932;

とテーブルの文字コードの変更を忘れずに!
続きを読む

PHPによるDB接続の基本

『PEARによるODBC』『DBC関数』
『Microsoft SQL Server関数』『MySQL関数』。
他は順次追加。

PEARによるODBC

require_once "DB.php";
require_once "DB/odbc.php";

// DSNを設定(使用DB://USER:PASS@HOST/TABLE)
$dsn = "mysql://admin:passwd@localhost/AAA";

// DBへ接続
$db = DB::connect($dsn);

// エラーチェック
if(DB::isError($db)){
	echo "DB接続エラー:".DB::errorMessage($db)."<br/>";
}

// テーブルのフィールド名が直接添字として使用可能になる
$db->setFetchMode(DB_FETCHMODE_ASSOC);

// SQLを実行
$sql = "SELECT * FROM BBB";
$result = $db->query($sql);

// テーブルの中身を表示
print("<table>");
while($row = $result->fetchRow()){
	print("<tr>");
	print("<td>".$row["aaa"]."</td>");
	print("<td>".$row["bbb"]."</td>");
	print("</tr>");
}
print("</table>");

// 件数
print($result->numRow()."件");

// DB接続切断
$db->disconnect();

PEARによるODBC補足

『DB::isError($db)』は『PEAR::isError($db)』、
『DB::errorMessage($db)』は『$db->getMessage()』、
でも良い様子。

if (PEAR::isError($db)) {
	die($db->getMessage());
}
$db->setFetchMode(DB_FETCHMODE_ASSOC);

をしない場合、$row[0]、$row[1]…となる。
続きを読む