PDO封装有关问题
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, 'username' => DB_USER, 'password' => DB_PWD, 'database' => DB_NAME, 'hostport' => DB_PORT, 'dbms' => DB_TYPE, 'dsn' => DB_TYPE . ":host=" . DB_HOST . ";dbname=" . DB_NAME );
}
if (empty ( $dbConfig ['hostname'] ))
throw_exception ( "没有定义数据库配置" );
self::$config = $dbConfig; //将传入的配置参数,传给Static变量。
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 = new 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 function
*/
static function free() {
self::$PDOStatement = null;
}
/*********************************************************************************************************/
/* 数据库操作 */
/*********************************************************************************************************/
/**
* 获得所有的查询数据
* @access function
* @return array
*/
static function getAll($sql = null) {
self::query ( $sql );
//返回数据集
$result = self::$PDOStatement->fetchAll ( constant ( 'PDO::FETCH_ASSOC' ) );
return $result;
}
/**
* 获得一条查询结果
* @access function
* @param string $sql SQL指令
* @param integer $seek 指针位置
* @return array
*/
static function getRow($sql = null) {

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









1. Windows 11で設定を開きます。 Win+I ショートカットまたはその他の方法を使用できます。 2. 「アプリ」セクションに移動し、「アプリと機能」をクリックします。 3. バックグラウンドでの実行を禁止したいアプリケーションを見つけます。三点ボタンをクリックして、[詳細オプション] を選択します。 4. [バックグラウンド アプリケーションのアクセス許可] セクションを見つけて、目的の値を選択します。デフォルトでは、Windows 11 は電力最適化モードを設定します。これにより、Windows はアプリケーションがバックグラウンドでどのように動作するかを管理できるようになります。たとえば、バッテリーを節約するためにバッテリー セーバー モードを有効にすると、システムはすべてのアプリを自動的に終了します。 5. アプリケーションがバックグラウンドで実行されないようにするには、[なし] を選択します。プログラムが通知を送信していない、データの更新に失敗しているなどに気付いた場合は、次のことができることに注意してください。

アプリを使用しようとすると、「カメラとマイクへのアクセスを許可できません」というメッセージが表示されますか?通常、カメラとマイクのアクセス許可は、必要に応じて特定の人に付与します。ただし、許可を拒否すると、カメラとマイクは機能しなくなり、代わりにこのエラー メッセージが表示されます。この問題の解決は非常に基本的なもので、1 ~ 2 分で解決できます。解決策 1 – カメラ、マイクの権限を提供する 必要なカメラとマイクの権限を設定で直接提供できます。ステップ 1 – [設定] タブに移動します。ステップ 2 – [プライバシーとセキュリティ] パネルを開きます。ステップ 3 – そこで「カメラ」権限をオンにします。ステップ 4 – 内部には、携帯電話のカメラの許可を要求したアプリのリストが表示されます。ステップ5 – 指定したアプリの「カメラ」を開きます

DeepSeekはファイルを直接PDFに変換できません。ファイルの種類に応じて、異なる方法を使用できます。一般的なドキュメント(Word、Excel、PowerPoint):Microsoft Office、Libreoffice、その他のソフトウェアを使用してPDFとしてエクスポートします。画像:画像ビューアまたは画像処理ソフトウェアを使用してPDFとして保存します。 Webページ:ブラウザの「Print into PDF」関数を使用するか、PDFツールに専用のWebページを使用します。 UNCOMMONフォーマット:適切なコンバーターを見つけて、PDFに変換します。適切なツールを選択し、実際の状況に基づいて計画を作成することが重要です。

Java では、「フィールド」は、データまたは状態を格納するために使用されるクラスまたはインターフェイスのデータ メンバーです。フィールドのプロパティには、タイプ (任意の Java データ型)、アクセス権、静的 (インスタンスではなくクラスに属する)、最終 (不変)、および一時 (シリアル化されていない) が含まれます。フィールドは、オブジェクト データの保存やオブジェクトの状態の維持など、クラスまたはインターフェイスの状態情報を保存するために使用されます。

Oracle は、次の手順で dbf ファイルを読み取ることができます。外部テーブルを作成し、その dbf ファイルを参照し、データを Oracle テーブルにインポートします。

Java リフレクション メカニズムを使用すると、プログラムはソース コードを変更せずにクラスの動作を動的に変更できます。 Class オブジェクトを操作することで、newInstance() によるインスタンスの作成、プライベート フィールドの値の変更、プライベート メソッドの呼び出しなどが可能になります。ただし、リフレクションは予期しない動作やセキュリティ上の問題を引き起こす可能性があり、パフォーマンスのオーバーヘッドがあるため、注意して使用する必要があります。

コンピュータのメモリ モジュールはどのようなものですか? これは、コンピュータのグラフィック カードとメモリ モジュールの概要です。コンピュータの独立したグラフィックス カードはファン付きのグラフィックス カード スロットに挿入され、メモリ モジュールはコンピュータのマザーボード上の緑色の長方形の形をしたメモリ モジュール スロット内にあります。ラップトップのメモリ モジュールはデスクトップのメモリ モジュールとは異なるため、互換的に使用することはできません。外観の違い1:デスクトップメモリ、細身、長さ13〜14 cm。 2: ノートのメモリは短く、約 5 センチメートルです。メモリはコンピュータの橋渡し役であり、プロセッサとハードウェア (ハードディスク、マザーボード、グラフィックス カードなど) の間のデータ交換を担当します。途中の赤丸がメモリースティックで、CPUファンの横にありメモリースティックに差し込まれています。ほら、コンピューターのメモリースティックはこんな感じです。ドライバーを使用してデスクトップ コンピューターのカバーを開けます。中央の赤い丸がメモリ モジュールです。メモリースティックとは何ですか?

Java 関数開発における一般的な例外の種類とその修復方法 Java 関数の開発中に、関数の正しい実行に影響を与えるさまざまな例外が発生する可能性があります。一般的な例外の種類とその修復方法は次のとおりです。 1. NullPointerException 説明: 初期化されていないオブジェクトにアクセスするとスローされます。修正: オブジェクトを使用する前に、オブジェクトが null でないことを確認してください。サンプル コード: try{Stringname=null;System.out.println(name.length());}catch(NullPointerExceptione){
