<?php
/**
* データソースを定義するインタフェース
*
* PHP version 5
*
* @package    interfaces
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

interface IDataSource
{

	/*
	 * データソース名を取得
	 */
	public function getDataSourceName();

	/**
	 *  データソースを初期化
	 */
	public function init( Config $config );

	/*
	 *    接続済みか
	 */
	public function isConnected();

	/*
	 *    バックエンドを取得
	 */
	public function getBackend();

	/*
	 *    コミットを発行
	 */
	public function commit();

	/*
	 *    接続
	 */
	public function connect( $backend, $user, $password, $server, $db_name );

	/*
	 *    デフォルトの接続先に接続
	 */
	public function connectDefault();

	/*
	 *    SQLをそのまま発行（結果セットあり）
	 */
	public function query( $sql );

	/*
	 *    SQLをそのまま発行（結果セットなし）
	 */
	public function execute( $sql );

	/*
	 *    プリペアドステートメントの発行
	 */
	public function prepareExecute( $sql, $params = NULL );

	/*
	 *    フェッチ処理（連想配列で返却）
	 */
	public function fetchAssoc( $result );

	/*
	 *    フェッチ処理（配列で返却）
	 */
	public function fetchArray( $result );

	/*
	 *   最後に実行されたAUTO_INCREMENT値を取得
	 */
	public function getLastInsertId();

}
