代碼封裝php,代碼封裝 英文

本文目錄一覽:

PHP中,類的封裝,調用問題

?

class Page{

function 分頁函數(參數){

$perNumber = 2;

$page = $_GET[‘page’];

$count = mysql_query(“select count(*) from people”);

$rs = mysql_fetch_array($count);

$totalNumber = $rs[0];

$totalPage = ceil($totalNumber/$perNumber);

if(!isset($page)){

$page = 1;

}

$startCount = ($page-1)*$perNumber;

$result = mysql_query(“select * from people limit $startCount,$perNumber”);

$num = mysql_numrows($result);

for($i=0;$i$num;$i++){

$a = mysql_result($result,$i,”id”);

$b = mysql_result($result,$i,”name”);

$c = mysql_result($result,$i,”age”);

echo “br /”.$a.”br /”.$b.”br /”.$c.”br /”;

}

}

}

?

vs2010怎麼把php代碼封裝成安裝程序

1,VS2010新建一個安裝包製作項目。(取名為”素材包”)

2,素材包上右擊–ADD–ASSEMBLY選定自己要安裝的可執行文件。然後相關程序集都會被自動加載進去,以後就是要將沒有加載的程序補充進去。

3,添加需要添加的文件,在File System中的App Folder中添加文件。

4,卸載,在系統中加載msiexec.exe,然後創建快捷方式,在Arguments中填上 /x{produce NO}(其中/x只是msiexec.exe的一個卸載參數,呵呵,這個程序很牛的,還有其他功能,在不同的參數下面)

5,自定義函數,這個函數中能實現很多功能,比如和目標計算機互動等,在Solution中ADD一個inno.cs(安裝工程)。其實就是一個繼承自安裝程序的類。將此函數設定為主輸出以後,自定 義可以參考

6,一個比較惱火的問題就是自動加載路徑了, 這中間有詳細的介紹。呵呵。

什麼是php中的封裝

封裝是php面向對象的其中一個特性,將多個可重複使用的函數封裝到一個類裏面。在使用時直接實例化該類的某一個方法,獲得需要的數據

如果是私有的方法和屬性值,外部無法訪問,具有一定的保護作用。

面向對象之封裝 例子

class A{

public $name = ‘老王’;

// protected $name = ‘老王’;

//private $name = ‘老王’;

//自己訪問

public function saya(){

return $this-name;

}

}

//實例化對象

$b = new A;

//public:外部、家族、自己都可以訪問

//protected:家族和自己都可以訪問,外部無法訪問

//private:自己可以訪問,外部和家族都無法訪問

echo ‘外部訪問:’.$b-name.’br’; //如果是私有的,訪問不了

echo ‘家族訪問:’.$b-sayb().’br’;

echo ‘自己訪問:’.$b-saya().’br’;

PHP 繼承、封裝、多態

-子類只能繼承父類的非私有屬性

-子類繼承父類後,相當於將父類的屬性和方法copy到子類,可以直接使用$this調用該屬性;

-php只能單繼承,不支持一個類繼承多個類。但是一個類可以進行多層繼承

類實現封裝是為了不讓外面的類隨意修改一個類的成員變量,所以在定義一個類的成員的時候,我們使用private關鍵字設置這個成員的訪問權限只能被這個類的其他成員方法調用,而不能被其他類中的方法調用,即通過本類中提供的方法來訪問本類中的私有屬性

-所以在該類中我們會提供一個訪問私有屬性的方法

-然後我們一般會定義兩個方法來實現對一個變量的操作,即__get()和__set()方法

一個類被多個子類繼承,如果這個類的某個方法,在多個子類中,表現出不同的功能,我們稱這種行為為多態(同一個類的不同子類表現出不同的形態)

-子類繼承父類-子類重寫父類的方法-父類引用指向子類對象

求PHP數據庫封裝類操作代碼

?php

class MySQL{

private $host; //服務器地址

private $name; //登錄賬號

private $pwd; //登錄密碼

private $dBase; //數據庫名稱

private $conn; //數據庫鏈接資源

private $result; //結果集

private $msg; //返回結果

private $fields; //返回字段

private $fieldsNum; //返回字段數

private $rowsNum; //返回結果數

private $rowsRst; //返回單條記錄的字段數組

private $filesArray = array(); //返回字段數組

private $rowsArray = array(); //返回結果數組

private $charset=’utf8′; //設置操作的字符集

private $query_count=0; //查詢結果次數

static private $_instance; //存儲對象

//初始化類

private function __construct($host=”,$name=”,$pwd=”,$dBase=”){

if($host != ”) $this-host = $host;

if($name != ”) $this-name = $name;

if($pwd != ”) $this-pwd = $pwd;

if($dBase != ”) $this-dBase = $dBase;

$this-init_conn();

}

//防止被克隆

private function __clone(){}

public static function getInstance($host=”,$name=”,$pwd=”,$dBase=”){

if(FALSE == (self::$_instance instanceof self)){

self::$_instance = new self($host,$name,$pwd,$dBase);

}

return self::$_instance;

}

public function __set($name,$value){

$this-$name=$value;

}

public function __get($name){

return $this-$name;

}

//鏈接數據庫

function init_conn(){

$this-conn=@mysql_connect($this-host,$this-name,$this-pwd) or die(‘connect db fail !’);

@mysql_select_db($this-dBase,$this-conn) or die(‘select db fail !’);

mysql_query(“set names “.$this-charset);

}

//查詢結果

function mysql_query_rst($sql){

if($this-conn == ”) $this-init_conn();

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

$this-query_count++;

}

//取得字段數

function getFieldsNum($sql){

$this-mysql_query_rst($sql);

$this-fieldsNum = @mysql_num_fields($this-result);

}

//取得查詢結果數

function getRowsNum($sql){

$this-mysql_query_rst($sql);

if(mysql_errno() == 0){

return @mysql_num_rows($this-result);

}else{

return ”;

}

}

//取得記錄數組(單條記錄)

function getRowsRst($sql,$type=MYSQL_BOTH){

$this-mysql_query_rst($sql);

if(empty($this-result)) return ”;

if(mysql_error() == 0){

$this-rowsRst = mysql_fetch_array($this-result,$type);

return $this-rowsRst;

}else{

return ”;

}

}

//取得記錄數組(多條記錄)

function getRowsArray($sql,$type=MYSQL_BOTH){

!empty($this-rowsArray) ? $this-rowsArray=array() : ”;

$this-mysql_query_rst($sql);

if(mysql_errno() == 0){

while($row = mysql_fetch_array($this-result,$type)) {

$this-rowsArray[] = $row;

}

return $this-rowsArray;

}else{

return ”;

}

}

//更新、刪除、添加記錄數

function uidRst($sql){

if($this-conn == ”){

$this-init_conn();

}

@mysql_query($sql);

$this-rowsNum = @mysql_affected_rows();

if(mysql_errno() == 0){

return $this-rowsNum;

}else{

return ”;

}

}

//返回最近插入的一條數據庫的id值

function returnRstId($sql){

if($this-conn == ”){

$this-init_conn();

}

@mysql_query($sql);

if(mysql_errno() == 0){

return mysql_insert_id();

}else{

return ”;

}

}

//獲取對應的字段值

function getFields($sql,$fields){

$this-mysql_query_rst($sql);

if(mysql_errno() == 0){

if(mysql_num_rows($this-result) 0){

$tmpfld = @mysql_fetch_row($this-result);

$this-fields = $tmpfld[$fields];

}

return $this-fields;

}else{

return ”;

}

}

//錯誤信息

function msg_error(){

if(mysql_errno() != 0) {

$this-msg = mysql_error();

}

return $this-msg;

}

//釋放結果集

function close_rst(){

mysql_free_result($this-result);

$this-msg = ”;

$this-fieldsNum = 0;

$this-rowsNum = 0;

$this-filesArray = ”;

$this-rowsArray = ”;

}

//關閉數據庫

function close_conn(){

$this-close_rst();

mysql_close($this-conn);

$this-conn = ”;

}

//取得數據庫版本

function db_version() {

return mysql_get_server_info();

}

}

PHP函數封裝!

你傳入的sql不應該那樣傳,可用性太低,函數或方法應該傳入變量,或者說可變的值。上代碼,不懂的問

/*封裝函數*/

$arr = $_POST;

//$sql = “INSERT INTO ui234_user (username,password,u_name,u_time) VALUES (?,?,?,?)”;

$table_name = “ui234_user”;

$field_arr = array(‘username’,’password’,’u_name’,’u_time’);

insert($arr,$table_name,$field_arr);

function insert($arr,$table_name,$field_arr){

    $sql = ‘INSERT INTO ‘.$table_name.’ (‘;

    $field_name = ”;//名稱

    $field_value = ”;//值

    $field_post = ”;//post取值

    /*拼裝字段*/

    foreach ($field_arr as $key = $value) {

         if($key == count($field_arr)-1){

         $field_name .= $value;

         $field_value.= ‘?’;

         $field_post .= ‘$arr[“‘.$field_name.'”]’;

         }else{

         $field_name .= $value.’,’;

         $field_value.= ‘?,’;

         $field_post .= ‘$arr[“‘.$value.'”],’;

         }

    }

    $sql .= $field_name.’) VALUES (‘.$field_value.’);’;

    $mysqli=connect();

    $stmt = $mysqli-prepare(“{$sql}”);

    $exe_str = ‘$stmt-bind_param(“ssss”,’.$field_post.’);’;

    //輸出字符串結果

    echo $sql.’hr/’;

    echo $exe_str;

    //然後用eval執行字符串代碼

    eval($exe_str);//相當於是:$stmt-bind_param(‘ssss’,$arr[‘username’],$arr[‘password’],$arr[‘u_name’],$arr[‘u_time’]);

    stmt-execute();

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/207154.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-08 14:20
下一篇 2024-12-08 14:21

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • 如何切分英文

    切分英文是自然語言處理中的一個重要步驟,它包括將一段英文文本劃分成若干個單詞和標點符號。如何準確地切分英文對於後續的文本處理任務具有決定性的影響,因此切分英文也成為了自然語言處理領…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在着手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29

發表回復

登錄後才能評論