mysqlデータベース操作クラスのPHPサンプル解説
この記事で紹介するコードは比較的単純なデータベースカプセル化クラスに属しており、必要な方は参照してください
それでは、全体的なアイデアについて少しお話しましょう。クラス全体のカプセル化には、データベースに接続するためのプライベート プロパティ $conn といくつかの操作関数が含まれています。 $conn がインスタンス化されると、コンストラクターは受信パラメーターを処理し、リソース タイプの接続ハンドルを返します。その後、インスタンス化されたオブジェクトの対応するメソッドを呼び出して、データベースを追加、削除、確認、および変更できます。
あまり話さず、コードを表示します:
<?php /** *以下代码用于数据库操作类的封装 * * @author rex<rex.sp.li@aliyun.com> * @version 1.0 * @since 2015 */ class Mysql{ //数据库连接返回值 private $conn; /** * [构造函数,返回值给$conn] * @param [string] $hostname [主机名] * @param [string] $username[用户名] * @param [string] $password[密码] * @param [string] $dbname[数据库名] * @param [string] $charset[字符集] * @return [null] */ function __construct($hostname,$username,$password,$dbname,$charset='utf8'){ $conn = @mysql_connect($hostname,$username,$password); if(!$conn){ echo '连接失败,请联系管理员'; exit; } $this->conn = $conn; $res = mysql_select_db($dbname); if(!$res){ echo '连接失败,请联系管理员'; exit; } mysql_set_charset($charset); } function __destruct(){ mysql_close(); } /** * [getAll 获取所有信息] * @param [string] $sql [sql语句] * @return [array] [返回二维数组] */ function getAll($sql){ $result = mysql_query($sql,$this->conn); $data = array(); if($result && mysql_num_rows($result)>0){ while($row = mysql_fetch_assoc($result)){ $data[] = $row; } } return $data; } /** * [getOne 获取单条数据] * @param [string] $sql [sql语句] * @return [array] [返回一维数组] */ function getOne($sql){ $result = mysql_query($sql,$this->conn); $data = array(); if($result && mysql_num_rows($result)>0){ $data = mysql_fetch_assoc($result); } return $data; } /** * [getOne 获取单条数据] * @param [string] $table [表名] * @param [string] $data [由字段名当键,属性当键值的一维数组] * @return [type] [返回false或者插入数据的id] */ function insert($table,$data){ $str = ''; $str .="INSERT INTO `$table` "; $str .="(`".implode("`,`",array_keys($data))."`) "; $str .=" VALUES "; $str .= "('".implode("','",$data)."')"; $res = mysql_query($str,$this->conn); if($res && mysql_affected_rows()>0){ return mysql_insert_id(); }else{ return false; } } /** * [update 更新数据库] * @param [string] $table [表名] * @param [array] $data [更新的数据,由字段名当键,属性当键值的一维数组] * @param [string] $where [条件,‘字段名'=‘字段属性'] * @return [type] [更新成功返回影响的行数,更新失败返回false] */ function update($table,$data,$where){ $sql = 'UPDATE '.$table.' SET '; foreach($data as $key => $value){ $sql .= "`{$key}`='{$value}',"; } $sql = rtrim($sql,','); $sql .= " WHERE $where"; $res = mysql_query($sql,$this->conn); if($res && mysql_affected_rows()){ return mysql_affected_rows(); }else{ return false; } } /** * [delete 删除数据] * @param [string] $table [表名] * @param [string] $where [条件,‘字段名'=‘字段属性'] * @return [type] [成功返回影响的行数,失败返回false] */ function del($table,$where){ $sql = "DELETE FROM `{$table}` WHERE {$where}"; $res = mysql_query($sql,$this->conn); if($res && mysql_affected_rows()){ return mysql_affected_rows(); }else{ return false; } } }
インスタンス化されたクラス:
<?php //包含数据库操作类文件 include 'mysql.class.php'; //设置传入参数 $hostname='localhost'; $username='root'; $password='123456'; $dbname='aisi'; $charset = 'utf8'; //实例化对象 $db = new Mysql($hostname,$username,$password,$dbname); //获取一条数据 $sql = "SELECT count(as_article_id) as count FROM as_article where as_article_type_id=1"; $count = $db->getOne($sql); //获取多条数据 $sql = "SELECT * FROM as_article where as_article_type_id=1 order by as_article_addtime desc limit $start,$limit"; $service = $db->getAll($sql); //插入数据 $arr = array( 'as_article_title'=>'数据库操作类', 'as_article_author'=>'rex', ); $res = $db->insert('as_article',$arr); //更新数据 $arr = array( 'as_article_title'=>'实例化对象', 'as_article_author'=>'Lee', ); $where = "as_article_id=1"; $res = $db->update('as_article',$arr,$where); //删除数据 $where = "as_article_id=1"; $res = $db->del('as_article',$where); ?>
コードを実演した後、いくつかの言葉を言います。
getOne メソッドは、$sql の SQL ステートメントを渡して 1 つのデータをクエリし、1 次元配列を返します。getAll メソッドも、SQL ステートメントを渡して複数のデータをクエリし、2 次元配列を返します。 ; insert メソッドはテーブル名と関連付け配列を渡し、挿入されたデータに対応するブール型またはインデックスを返します。更新メソッドはテーブル名、関連する配列と条件を渡し、ブール型または影響を受ける行の数を返します。 del メソッドはテーブル名と条件を渡し、boolen 型を返します。
これですべてではありますが、興味のある友人は getOne と getAll をパラメータとして SQL ステートメントに直接渡すことで最適化できます。
以上がmysqlデータベース操作クラスのPHPサンプル解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。
