日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php连接电脑,PHP_深入理解php的MySQL连接类,无意间在电脑里发现还有这么 - phpStudy...

發布時間:2025/4/17 数据库 81 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php连接电脑,PHP_深入理解php的MySQL连接类,无意间在电脑里发现还有这么 - phpStudy... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深入理解php的MySQL連接類

無意間在電腦里發現還有這么個Mysql的連接類,也不記得哪里收藏的了,貼上來吧。

后面幾個show_databases和show_tables....等方法都用了一堆echo,好像一直不喜歡在類的方法里直接用輸出語句,不過這也只是列舉數據庫和表名,構造函數的參數也可以給個默認值吧。

/*

* filename:mysql數據庫連接類

*/

class mysql{

private $db_host;? //數據庫主機

private $db_user;? //數據庫用戶名

private $db_pwd;?? //數據庫用戶名密碼

private $db_database;??? //數據庫名

private $conn;?????????? //數據庫連接標識;

private $result;???????? //執行query命令的結果資源標識

private $sql;?? //sql執行語句

private $row;???? //返回的條目數

private $coding;? //數據庫編碼,GBK,UTF8,gb2312

private $bulletin = true;??? //是否開啟錯誤記錄

private $show_error = true;? //測試階段,顯示所有錯誤,具有安全隱患,默認關閉

private $is_error = false;?? //發現錯誤是否立即終止,默認true,建議不啟用,因為當有問題時用戶什么也看不到是很苦惱的

/*構造函數*/

public function __construct($db_host,$db_user,$db_pwd,$db_database,$conn,$coding){

$this->db_host=$db_host;

$this->db_user=$db_user;

$this->db_pwd = $db_pwd;

$this->db_database=$db_database;

$this->conn=$conn;

$this->coding=$coding;

$this->connect();

}

/*數據庫連接*/

public function connect()

{

if($this->conn=="pconn"){

//永久鏈接

$this->conn=mysql_pconnect($this->db_host,$this->db_user,$this->db_pwd);

}else{

//即時鏈接

$this->conn=mysql_connect($this->db_host,$this->db_user,$this->db_pwd);

}

if(!mysql_select_db($this->db_database,$this->conn)){

if($this->show_error){

$this->show_error("數據庫不可用:",$this->db_database);

}

}

mysql_query("SET NAMES $this->coding");

}

/*數據庫執行語句,可執行查詢添加修改刪除等任何sql語句*/

public function query($sql)

{

if($sql == ""){

$this->show_error("sql語句錯誤:","sql查詢語句為空");}

$this->sql = $sql;

$result = mysql_query($this->sql,$this->conn);

if(!$result){

//調試中使用,sql語句出錯時會自動打印出來

if($this->show_error){

$this->show_error("錯誤sql語句:",$this->sql);

}

}else{

$this->result = $result;

}

return $this->result;

}

/*創建添加新的數據庫*/

public function create_database($database_name){

$database=$database_name;

$sqlDatabase = 'create database '.$database;

$this->query($sqlDatabase);

}

/*查詢服務器所有數據庫*/

//將系統數據庫與用戶數據庫分開,更直觀的顯示?

public function show_databases(){

$rs=$this->query("show databases");

echo "現有數據庫:".$amount =$this->db_num_rows($rs);

echo "
";

$i=1;

while($row = $this->fetch_array($rs)){

echo "$i $row[Database]";

echo "
";

$i++;

}

}

//以數組形式返回主機中所有數據庫名

public function databases()

{

$rsPtr=mysql_list_dbs($this->conn);

$i=0;

$cnt=mysql_num_rows($rsPtr);

while($i

{

$rs[]=mysql_db_name($rsPtr,$i);

$i++;

}

return $rs;

}

/*查詢數據庫下所有的表*/

function show_tables($database_name){

$this->query("show tables");

echo "現有數據庫:".$amount = $this->db_num_rows($rs);

echo "
";

$i=1;

while($row = $this->fetch_array($rs)){

$columnName="Tables_in_".$database_name;

echo "$i $row[$columnName]";

echo "
";

$i++;

}

}

/*

mysql_fetch_row()??? array? $row[0],$row[1],$row[2]

mysql_fetch_array()? array? $row[0] 或 $row[id]

mysql_fetch_assoc()? array? 用$row->content 字段大小寫敏感

mysql_fetch_object() object 用$row[id],$row[content] 字段大小寫敏感

*/

/*取得結果數據*/

public function mysql_result_li()

{

return mysql_result($str);

}

/*取得記錄集,獲取數組-索引和關聯,使用$row['content'] */

public function fetch_array()

{

return mysql_fetch_array($this->result);

}

//獲取關聯數組,使用$row['字段名']

public function fetch_assoc()

{

return mysql_fetch_assoc($this->result);

}

//獲取數字索引數組,使用$row[0],$row[1],$row[2]

public function fetch_row()

{

return mysql_fetch_row($this->result);

}

//獲取對象數組,使用$row->content

public function fetch_Object()

{

return mysql_fetch_object($this->result);

}

//簡化查詢select

public function findall($table)

{

$this->query("SELECT * FROM $table");

}

//簡化查詢select

public function select($table,$columnName,$condition)

{

if($columnName==""){

$columnName="*";

}

$this->query("SELECT $columnName FROM $table $condition");

}

//簡化刪除del

public function delete($table,$condition){

$this->query("DELETE FROM $table WHERE $condition");

}

//簡化插入insert

public function insert($table,$columnName,$value){

$this->query("INSERT INTO $table ($columnName) VALUES ($value)");

}

//簡化修改update

public function update($table,$mod_content,$condition){

$this->query("UPDATE $table SET $mod_content WHERE $condition");

}

/*取得上一步 INSERT 操作產生的 ID*/

public function insert_id(){

return mysql_insert_id();

}

//指向確定的一條數據記錄

public function db_data_seek($id){

if($id>0){

$id=$id-1;

}

if(!@mysql_data_seek($this->result,$id)){

$this->show_error("sql語句有誤:", "指定的數據為空");

}

return $this->result;

}

// 根據select查詢結果計算結果集條數

public function db_num_rows(){

if($this->result==null){

if($this->show_error){

$this->show_error("sql語句錯誤","暫時為空,沒有任何內容!");

}

}else{

return? mysql_num_rows($this->result);

}

}

// 根據insert,update,delete執行結果取得影響行數

public function db_affected_rows(){

return mysql_affected_rows();

}

//輸出顯示sql語句

public function show_error($message="",$sql=""){

if(!$sql){

echo "".$message."";

echo "
";

}else{

echo "

";

echo "錯誤信息提示:
";

echo "

";

echo "

";

echo "錯誤號:12142";

echo "


";

echo "錯誤原因:".mysql_error()."
";

echo "

";

echo "".$message."";

echo "

";

echo "

".$sql."";

$ip=$this->getip();

if($this->bulletin){

$time = date("Y-m-d H:i:s");

$message=$message."/r/n$this->sql"."/r/n客戶IP:$ip"."/r/n時間 :$time"."/r/n/r/n";

$server_date=date("Y-m-d");

$filename=$server_date.".txt";

$file_path="error/".$filename;

$error_content=$message;

//$error_content="錯誤的數據庫,不可以鏈接";

$file = "error"; //設置文件保存目錄

//建立文件夾

if(!file_exists($file)){

if(!mkdir($file,0777)){

//默認的 mode 是 0777,意味著最大可能的訪問權

die("upload files directory does not exist and creation failed");

}

}

//建立txt日期文件

if(!file_exists($file_path)){

//echo "建立日期文件";

fopen($file_path,"w+");

//首先要確定文件存在并且可寫

if (is_writable($file_path))

{

//使用添加模式打開$filename,文件指針將會在文件的開頭

if (!$handle = fopen($file_path, 'a'))

{

echo "不能打開文件 $filename";

exit;

}

//將$somecontent寫入到我們打開的文件中。

if (!fwrite($handle, $error_content))

{

echo "不能寫入到文件 $filename";

exit;

}

//echo "文件 $filename 寫入成功";

echo "——錯誤記錄被保存!";

//關閉文件

fclose($handle);

} else {

echo "文件 $filename 不可寫";

}

}else{

//首先要確定文件存在并且可寫

if (is_writable($file_path))

{

//使用添加模式打開$filename,文件指針將會在文件的開頭

if (!$handle = fopen($file_path, 'a'))

{

echo "不能打開文件 $filename";

exit;

}

//將$somecontent寫入到我們打開的文件中。

if (!fwrite($handle, $error_content))

{

echo "不能寫入到文件 $filename";

exit;

}

//echo "文件 $filename 寫入成功";

echo "——錯誤記錄被保存!";

//關閉文件

fclose($handle);

} else {

echo "文件 $filename 不可寫";

}

}

}

echo "
";

if($this->is_error){

exit;

}

}

echo "

";

echo "

";

echo "
";

}

//釋放結果集

public function free(){

@mysql_free_result($this->result);

}

//數據庫選擇

public function select_db($db_database){

return mysql_select_db($db_database);

}

//查詢字段數量

public function num_fields($table_name){

//return mysql_num_fields($this->result);

$this->query("select * from $table_name");

echo "
";

echo "字段數:".$total = mysql_num_fields($this->result);

echo "

";

for ($i=0; $i

print_r(mysql_fetch_field($this->result,$i) );

}

echo "

";

echo "
";

}

//取得 MySQL 服務器信息

public function mysql_server($num=''){

switch ($num){

case 1 :

return mysql_get_server_info(); //MySQL 服務器信息

break;

case 2 :

return mysql_get_host_info();?? //取得 MySQL 主機信息

break;

case 3 :

return mysql_get_client_info(); //取得 MySQL 客戶端信息

break;

case 4 :

return mysql_get_proto_info();? //取得 MySQL 協議信息

break;

default:

return mysql_get_client_info(); //默認取得mysql版本信息

}

}

//析構函數,自動關閉數據庫,垃圾回收機制

public function __destruct()

{

if(!empty($this->result)){

$this->free();

}

mysql_close($this->conn);

}//function __destruct();

/*獲得客戶端真實的IP地址*/

function getip(){

if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))

{

$ip = getenv("HTTP_CLIENT_IP");

}

else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){

$ip = getenv("HTTP_X_FORWARDED_FOR");

}

else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))

{

$ip = getenv("REMOTE_ADDR");

}

else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){

$ip = $_SERVER['REMOTE_ADDR'];

}

else{

$ip = "unknown";

}

return($ip);

}

}

?>

相關閱讀:

多角色選項卡登錄效果

詳解iOS App開發中Cookie的管理方法

C#/.Net 中快速批量給SQLite數據庫插入測試數據

linux系統配置vsftpd服務后啟動失敗該怎么辦?

jQuery實現淡入淡出二級下拉導航菜單的方法

Java使用自動化部署工具Gradle中的任務設定教程

win7系統如何刪除注冊表里面的垃圾文件?

華碩電腦升級win10后遇到失真閃爍問題解決方法(圖解)

JavaScript實現俄羅斯方塊游戲過程分析及源碼分享

在Asp.net網頁上寫讀Cookie的兩種不同語法介紹

Asp.Mvc 2.0實現用戶注冊實例講解(1)

jQuery簡單實現頁面元素置頂時懸浮效果示例

Mac怎么使用Safari一鍵靜音和網頁標簽固定功能?

c#異常處理示例分享

總結

以上是生活随笔為你收集整理的php连接电脑,PHP_深入理解php的MySQL连接类,无意间在电脑里发现还有这么 - phpStudy...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。