[ZF] Zend_Db_Select でFROM句/WHERE句に副問合せ(subquery)

 

Zend Framework の Zend_Db_Select でFROM句/WHERE句に副問合せ(subquery)する方法を調べたのでメモ。
 

以下のサイトを参考にしました。
 

U2Kの覚え書き  Zend_Db_Select でFROM句に副問合せ(subquery) はてなブックマーク - U2Kの覚え書き  Zend_Db_Select でFROM句に副問合せ(subquery)

U2Kの覚え書き  Zend_Db_Select でWHERE句に副問合せ(subquery) はてなブックマーク - U2Kの覚え書き  Zend_Db_Select でWHERE句に副問合せ(subquery)

サブクエリをZendのDBを使用して作成 はてなブックマーク - サブクエリをZendのDBを使用して作成
 

Facebook API の調査や質問をするなら「Facebook Stack Overflow」がおすすめ

 

Facebook API の調べ物や質問をするなら「Facebook Stack Overflow」を使うのがおすすめです。
 

Facebook Stack Overflow はてなブックマーク - Facebook Stack Overflow
 

Facebook は API の仕様変更が多いので、日本語の情報があっても古い情報ということよくあります。
 

なので、英語が少しでも読めるなら「Facebook Stack Overflow」で検索や質問をすると、結構かんたんに問題解決できるので良いですよ。
 

Heroku + Rails の認証付きステージング(staging)環境を構築する方法

Heroku + Rails の認証付きステージング環境を構築する方法を内容をご紹介します。

Heroku

続きを読む

Facebook開発者、必見のサポートサイト「fb.developers’+」

 

Facebook開発者、必見のサポートサイト「fb.developers’+」がオープンされました。
 

英語が苦手な開発者にも日本語の情報なので嬉しいですね。
 

Facebook開発者の為のサポートサイト | fb.developers’+ はてなブックマーク - Facebook開発者の為のサポートサイト | fb.developers'+
 

[PHP] エラーログ error_log の出力先ディレクトリを確認する方法

PHP の エラーログ error_log の出力先ディレクトリを確認する方法をご紹介します。

コマンドライン上で以下のコマンドを入力すれば確認できます。

1
2
3
$ php -i | grep error_log
 
error_log => /home/log/php/error.log => /home/log/php/error.log

以上です。

[Eclipse] 行番号ジャンプのショートカットキー

Eclipseで、指定した行番号へジャンプするショートカットキーを調べたのでメモ。

Ctrl + L

以上です。

[JavaScript] a href=”” onclick の使い方

onclickの使い方を調べていたら「href=”#” onclick の悪習」という記事を見つけたのでご紹介します。

JavaScript

続きを読む

rpm と yum の違いと使い分けがよく分かる記事

 

rpm と yum の違いと使い分けがよく分かる記事があったのでメモ。
 

■ rpm と yum の違いを解説

初心者の頃に知っておきたかった rpm と yum の違いと使い分け – 彼女からは、おいちゃんと呼ばれています はてなブックマーク - 初心者の頃に知っておきたかった rpm と yum の違いと使い分け - 彼女からは、おいちゃんと呼ばれています

Linux の 101 試験対策: RPM および YUM によるパッケージ管理 はてなブックマーク - Linux の 101 試験対策: RPM および YUM によるパッケージ管理
 

■ コマンド一覧

【 yum 】 パッケージを取得してインストール/アップデートをする – Linuxコマンド集:ITpro はてなブックマーク - 【 yum 】 パッケージを取得してインストール/アップデートをする - Linuxコマンド集:ITpro

【 rpm 】 RPMパッケージをインストール/アンインストールする – Linuxコマンド集:ITpro はてなブックマーク - 【 rpm 】 RPMパッケージをインストール/アンインストールする - Linuxコマンド集:ITpro
 

以上です。
 

[PHP][PEAR] Column count of mysql.proc is wrong. エラーの解決方法

PHP で PEAR::DB を使って UPDATE 文を発行したら DB Error: unknown error というエラーが発生しました。

getMessage() でのエラー内容

DB Error: unknown error

このエラー内容では何の手掛かりにもならないので、もっと詳しいエラー内容を getDebugInfo() で取得してみました。

  • getMessage() : DB Error: unknown error
  • getDebugInfo() : INSERT INTO テーブル名 (列名1,列名2,列名3) VALUES(値1,値2,値3) [nativecode=1364 ** Field ‘列名4’ doesn’t have a default value]

エラーを getDebugInfo() で取得してみると、自分のエラーは以下の通りでした。
 
続きを読む

[Symfony1.4][Validator] カスタムバリデータを作成する方法

 

Symfony1.4で、カスタムバリデータを作成する方法を調べて、実践したのでメモ。
 

まず、カスタムバリデータを作る前に、自分が使いたいバリデータが既存のものにないか確認します。
 

symfony Forms in Action | 付録 B – バリデータ | symfony | Web PHP Framework
 

使いたいバリデータがない場合は、自分で作ります。
 

カスタムバリデータを作るときに参考になった記事は、Symfony1.4だと以下の通りです。
 

The More with symfony book | カスタムウィジェットとバリデータ | symfony | Web PHP Framework

symfonyでカスタムバリデータを使ってフィルタを実装する – spanstyle::monolog

symfonyのValidatorで全角/半角変換などを行う – ゆっくり*ゆっくり
 

実際に、書籍を特定するための番号であるISBNを入力値の長さと文字の構成を確認するバリデータを作ってみました。
 

ちなみに、ISBNは、ISBN-10だと10桁で、1桁目が 0 ~ 9 、X が使用され、他の桁は数字です。ISBN-13は13桁で、数字のみで構成されています。
 

・参考:ISBN – Wikipedia
 

正規表現の使い方はこちらを参考にしました。
 

正規表現 | PHP Labo

正規表現
 

そして、実際に作ったのが下記のソースになります。
 

■ myValidatorIsbn.class.php
 

(ISBNの形式に合ってるか確認するバリデータ)
 

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
<?php
 
class validatorIsbn extends sfValidatorBase
{
	protected function doClean($value)
	{
		// 入力値の長さが10文字の場合、そのまま入力値を返す
		// ISBN-10は、1桁目が 0 ~ 9 、X で構成され、他の桁は数字
		if (strlen($value) == 10){
			if (preg_match("/^[0-9]{9}?[0-9X]$/" ,$value)){
				return $value;
			} else {
				throw new sfValidatorError($this, 'ISBN-10は1桁目は 0~9 、X、他の桁は数字で入力して下さい', array('value' => $value));
			}
		}
 
		// 入力値の長さが13文字の場合、そのまま入力値を返す
		if (strlen($value) == 13){
			// ISBN-13は数字のみで構成される
			if (preg_match("/^[0-9]{13}?$/" ,$value))
			{
				return $value;
			} else {
				throw new sfValidatorError($this, 'ISBN-13は数字のみで入力して下さい', array('value' => $value));
			}
		}
		// それ以外の場合、エラー
		throw new sfValidatorError($this, 'ISBNは10文字、または13文字で入力して下さい', array('value' => $value));
	}
}

 

■ IsbnSearchForm.class.php
 

(ISBNの入力フォームを定義しているフォームファイル)
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
class IsbnSearchForm extends BaseForm
{
	public function configure()
	{
		$this->setWidgets(array(
			'isbn' => new sfWidgetFormInput(array(), array('size' => 20, 'maxlength' => 13, )),
		));
 
		$this->setValidators(array(
			'isbn' => new myValidatorIsbn(array('required' => true, ),
										  array('required' => '未入力', )),
		));
 
		$this->widgetSchema->setNameFormat('isbn_search[%s]');
 
		$this->widgetSchema->setLabels(array('isbn' => 'ISBN10/13', ));
	}
}

 

以上です。