ホームページ  >  記事  >  バックエンド開発  >  PDO パッケージ化に関する問題

PDO パッケージ化に関する問題

WBOY
WBOYオリジナル
2016-06-13 13:50:28722ブラウズ

PDO パッケージ化の問題。
PDO の Mysql パッケージがオンラインにアップロードされます。どう見ても何かがおかしい。私は以前 JAVA を学んでいましたが、PHP に出会ったばかりです。コードは次のとおりです:
/**
* データベース PDO 操作
*/
class MysqlPdo {
public static $PDOStatement = null;
/**
* データベース接続パラメータの設定
* @var array
* @access public
* /
public static $config = array ();
/**
* 永続接続を使用するかどうか
* @var bool
* @access public
*/
public static $pconnect = false;
/**
* エラーメッセージ
* @var string
* @access public
*/
public static $error = '';
/**
* シングルトン モード、Pdo クラスの唯一のインスタンス、データベース接続リソースを保存します
* @var object
* @access public
*/
protected static $link;
/**
* データベースが接続されているかどうか
* @var bool
* @access public
*/
public static $connected = false;
/ **
* データベースのバージョン
* @var string
* @access public
*/
public static $dbVersion = null;
/**
* 現在の SQL ステートメント
* @var string
* @access public
*/
public static $queryStr = '';
/**
* 最後に挿入されたレコードの ID
* @var integer
* @access public
*/
public static $lastInsertId = null;
/**
* 影響を受けるレコードの数を返します
* @var integer
* @access public
*/
public static $numRows = 0;
// トランザクション命令数
public static $transTimes = 0;
/ **
* コンストラクター、
* @param $dbconfig データベース接続関連情報、array('ServerName', 'UserName', 'Password', 'DefaultDb', 'DB_Port', 'DB_TYPE')
*/
public function __construct($dbConfig = '') {
if (! class_exists ( 'PDO' ))
throw_Exception ( "サポートされていません: PDO" ) ;

//パラメータが送信されない場合、デフォルトのデータ定義が使用されます
if (! is_array ( $dbConfig )) {
$dbConfig = array ('hostname' => DB_HOST, 'ユーザー名' = > DB_USER、'パスワード' => DB_NAME、'dbms' => DB_TYPE; host=" . DB_HOST . ";dbname=" . DB_NAME );
}
if (empty ( $dbConfig ['hostname'] ))
throw_Exception ( "データベース構成が定義されていません" );
self:: $config = $dbConfig; // 受信した設定パラメータを静的変数に渡します。
if (empty ( self::$config ['params'] )) //???????????????
self::$config [' params'] = array ();
/***************************************ゴージャスな仕切り************ *****************************/
if (! isset ( self::$link )) {
$configs = self::$config //設定の一部をコピーします。情報。
if (self::$pconnect) {
$configs ['params'] [constant ( 'PDO::ATTR_PERSISTENT' )] = true;
}
try {
self: :$link = 新しい PDO ( $configs ['dsn'], $configs ['username'], $configs ['password'], $configs ['params'] );
} catch ( PDOException $e ) {
throw_Exception ( $e->getMessage () );

//exit('接続に失敗しました:'.$e->getMessage());
}
if (! self::$link) {
throw_Exception ( 'PDO CONNECT ERROR' );
return false;
}
self::$link->exec ( 'SET NAMES ' . DB_CHARSET );
self::$dbVersion = self::$link->getAttribute ( constant ( "PDO::ATTR_SERVER_INFO" ) );
// 接続に成功のマークを付けます
self::$connected = true ;
// データベース接続構成情報をログアウトします
unset ( $configs );
}
return self::$link;
}
/**
* クエリ結果を公開
* @access関数
* /
static function free() {
self::$PDOStatement = null;
}
/************************************************* ************************************************* *****/
/* データベース操作*/
/************************************************* ************************************************* ** ***/
/**
* すべてのクエリデータを取得
* @access 関数
* @return array
*/
static function getAll($sql = null) {
self::query ( $sql );
//データセットを返す
$result = self::$PDOStatement->fetchAll ( constant ( 'PDO::FETCH_ASSOC' ) );
return $result;
}
/**
* クエリ結果の取得
* @access 関数
* @param string $sql SQL コマンド
* @param integer $seek ポインタ位置
* @return array
*/
静的関数 getRow($sql = null) {

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。