简单的MySQLDB类,简单MySQLDB类
简单的MySQLDB类,简单MySQLDB类
1 php 2 header('Content-Type:text/html; charset=utf-8'); 3 error_reporting(E_ALL ^ E_DEPRECATED); 4 //数据库操作类 5 class MySQLDB{ 6 7 //属性--必要的信息 8 private $_host; //主机 9 private $_port; //端口 10 private $_user; //用户名 11 private $_pass; //密码 12 private $_charset;//字符集 13 private $_dbname; //默认数据库 14 15 //属性--运行时生成 16 public $_link; //mysql link 资源 17 18 private static $_instance; 19 public static function getInstance($params=array()){ 20 if(!self::$_instance instanceof self){ 21 self::$_instance = new self($params); 22 } 23 return self::$_instance; 24 } 25 private function __clone(){} 26 27 /* 28 * 构造方法 29 * @param $param=array() array 关联数组 需要六个属性值 30 */ 31 private function __construct($params=array()){ 32 //初始化属性 33 $this->_initParams($params); 34 //连接数据库服务器 35 $this->_connect(); 36 //设定字符集 37 $this->_setCharset(); 38 //选择默认数据 39 $this->_selectDB(); 40 } 41 42 /* 43 * 初始化数据库服务器参数 44 */ 45 private function _initParams($params){ 46 $this->_host = isset($params['host'])?$params['host']:'127.0.0.1'; //本机 47 $this->_port = isset($params['port'])?$params['port']:'3306'; //3306 48 $this->_user = isset($params['user'])?$params['user']:''; //匿名用户 49 $this->_pass = isset($params['pass'])?$params['pass']:''; //没有密码 50 $this->_charset = isset($params['charset'])?$params['charset']:'utf8'; //utf8 51 $this->_dbname = isset($params['dbname'])?$params['dbname']:''; //表示不用选择默认数据库 52 } 53 54 55 /* 56 * 连接数据库服务器 57 */ 58 private function _connect(){ 59 //127.0.0.1:3306 60 if($link = mysql_connect("$this->_host:$this->_port",$this->_user,$this->_pass)){ 61 //成功 62 $this->_link = $link; 63 }else{ 64 //失败,强制脚本结束,提示错误信息 65 die("-_-!,连接数据库服务器失败,请确定连接选项"); 66 } 67 } 68 69 /* 70 * 设定指定字符集 71 */ 72 private function _setCharset(){ 73 $sql = "set names $this->_charset"; 74 if(mysql_query($sql,$this->_link)){ 75 //成功 76 }else{ 77 //执行失败给出错误信息 78 echo '-_-!SQL执行失败'; 79 echo '错误的SQL为:',$sql,'
'; 80 echo '错误代码为:',mysql_errno($this->_link),'
'; 81 echo '错误信息为:',mysql_error($this->_link); 82 die; 83 } 84 } 85 86 /* 87 * 选择默认数据库 88 * 如果没有指定,则不选择 89 */ 90 private function _selectDB(){ 91 //判断是否需要选择默认数据库,表示不需要,防止为0 92 if($this->_dbname !== ''){ 93 //不为空,才选择数据库 94 $sql = "use `$this->_dbname`"; 95 if(mysql_query($sql,$this->_link)){ 96 //成功 97 }else{ 98 //执行失败给出错误信息 99 echo '-_-!SQL执行失败
'; 100 echo '错误的SQL为:',$sql,'
'; 101 echo '错误代码为:',mysql_errno($this->_link),'
'; 102 echo '错误信息为:',mysql_error($this->_link); 103 die; 104 } 105 } 106 } 107 108 109 110 /** 111 * 序列化时执行的方法 112 * @return array每个数组元素为一个需要被序列化的属性名 113 * 114 */ 115 public function __sleep(){ 116 return array('_host','_post','_user','_pass','_charset','_dbname'); 117 } 118 119 /* 120 * 反序列化时被执行 121 * 重新初始化工作 122 */ 123 public function __wakeup(){ 124 //连接数据库服务器 125 $this->_connect(); 126 //设定连接字符集 127 $this->_setCharset(); 128 //选择默认数据库 129 $this->_selectDB(); 130 } 131 } View Code
就是说这个字段是整数,长度是10个字符。
明显错了,没有1,2,这样的数据类型 ,还有最后一项不用逗号

ホット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)

ホットトピック









MySQLデータベースでは、ユーザーとデータベースの関係は、アクセス許可と表によって定義されます。ユーザーには、データベースにアクセスするためのユーザー名とパスワードがあります。許可は助成金コマンドを通じて付与され、テーブルはCreate Tableコマンドによって作成されます。ユーザーとデータベースの関係を確立するには、データベースを作成し、ユーザーを作成してから許可を付与する必要があります。

MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

1.正しいインデックスを使用して、データの量を削減してデータ検索をスピードアップしました。テーブルの列を複数回検索する場合は、その列のインデックスを作成します。あなたまたはあなたのアプリが基準に従って複数の列からのデータが必要な場合、複合インデックス2を作成します2。選択した列のみを避けます。必要な列のすべてを選択すると、より多くのサーバーメモリを使用する場合にのみサーバーが遅くなり、たとえばテーブルにはcreated_atやupdated_atやupdated_atなどの列が含まれます。

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

Passwordが暗号化された形式で保存されているため、MariadbのNavicatはデータベースパスワードを直接表示できません。データベースのセキュリティを確保するには、パスワードをリセットするには3つの方法があります。NAVICATを介してパスワードをリセットし、複雑なパスワードを設定します。構成ファイルを表示します(推奨されていない、高リスク)。システムコマンドラインツールを使用します(推奨されません。コマンドラインツールに習熟する必要があります)。

次のコマンドでmysqlデータベースを表示します。サーバーに接続します:mysql -u username -pパスワードrun showデータベース。すべての既存のデータベースを取得するコマンド[データベース]を選択します。データベース名を使用します。テーブルを表示:表を表示します。テーブル構造を表示:テーブル名を説明してください。データを表示:[テーブル名]から[ *]を選択します。

MySQLでテーブルをコピーするには、新しいテーブルの作成、データの挿入、外部キーの設定、インデックスのコピー、トリガー、ストアドプロシージャ、および機能が必要です。特定の手順には、同じ構造を持つ新しいテーブルの作成が含まれます。元のテーブルからデータを新しいテーブルに挿入します。同じ外部キーの制約を設定します(元のテーブルに1つがある場合)。同じインデックスを作成します。同じトリガーを作成します(元のテーブルに1つがある場合)。同じストアドプロシージャまたは関数を作成します(元のテーブルが使用されている場合)。
