php操作种

Jun 13, 2016 am 11:01 AM
gt link return table this

php操作类

<?php /**+---------------------- * Mysql操作类+---------------------- * 文件名称  Db.class.php+---------------------- * 文件描述  mysql操作类+---------------------- */class Db{    //数据库连接标识    protected $link = null;    //当前操作的表    public $table = '';    //查询参数    protected $options = array();    //当前执行的SQL语句    protected $sql = '';    //用什么编码传递数据    protected $dbCharset = 'utf8';    //缓存路径    protected $cachePath = './cache/';    //缓存扩展名    protected $cacheFileExt = "php";    //缓存文件名    protected $cacheFileName;    //是否缓存    protected $cache = false;    //缓存更新时间秒数    protected $cacheLimitTime = 60;    //数据返回类型, 1代表数组, 2代表对象    protected $returnType = 1;  /*   * 根据当前动态文件生成缓存文件名   */	function setCacheFileName($fileName) {		$cacheFileName = $this->cachePath . strtoupper(md5($fileName)).".".$this->cacheFileExt;		$this->cacheFileName=$cacheFileName;    }  /*   * 根据当前动态文件生成缓存文件名   */	function getCacheFileName() {		return  $this->cacheFileName;    }    /**     * 连接数据库     *     * @access      public     * @param       array    $db  数据库配置     * @return      resource 数据库连接标识     */    public function connect($db){        //根据配置使用不同函数连接数据库        $db['host'] = isset($db['port']) ? $db['host'].':'.$db['port']: $db['host'];        $db['char'] = isset($db['char']) ? $db['char']: $this->dbCharset;        $func = $db['pconnect'] ? 'mysql_pconnect' : 'mysql_connect';        $this->link = $func($db['host'], $db['user'], $db['pwd']);        mysql_select_db($db['database'], $this->link);        mysql_query("SET NAMES '{$db['char']}'");        $this->cachePath = isset($db['cachepath']) ? $db['cachepath']: $this->cachePath;        return $this->link;    }    /**     * 查询符合条件的一条记录     *     * @access      public     * @param       string    $where  查询条件     * @param       string    $field  查询字段     * @param       string    $table  表     * @return      mixed             符合条件的记录     */    public function find($where = NULL, $field = '*', $table = ''){        return $this->findAll($where = NULL, $field = '*', $table = '', FALSE);    }    /**     * 查询符合条件的所有记录     *     * @access      public     * @param       string    $where  查询条件     * @param       string    $field  查询字段     * @param       string    $table  表     * @return      mixed             符合条件的记录     */    public function findAll($where = NULL, $field = '*', $table = '', $all = TRUE){        $this->options['where'] = is_null($where) ? @$this->options['where']: $where;        $this->options['field'] = isset($this->options['field']) ? $this->options['field']: $field;        $this->options['table'] = $table == '' ? $this->table: $table;        $sql = "SELECT {$this->options['field']} FROM `{$this->options['table']}` ";        $sql .= isset($this->options['join']) ? ' LEFT JOIN '.$this->options['join']: '';        $sql .= isset($this->options['where']) ? ' WHERE '.$this->options['where']: '';        $sql .= isset($this->options['group']) ? ' GROUP BY '.$this->options['group']: '';        $sql .= isset($this->options['having']) ? ' HAVING '.$this->options['having']: '';        $sql .= isset($this->options['order']) ? ' ORDER BY '.$this->options['order']: '';        $sql .= isset($this->options['limit']) ? ' LIMIT '.$this->options['limit']: '';        $this->sql = $sql;        $row = NULL;        //如果开启了缓存, 那么重缓存中获取数据        if ($this->cache === TRUE){			$this->setCacheFileName($this->sql);            $row = $this->readCache();        }        //如果读取失败, 或则没有开启缓存        if (is_null($row)){            $result = $this->query();            $row = $all === TRUE ? $this->fetchAll($result): $this->fetch($result);            //如果开启了缓存, 那么就写入            if ($this->cache === TRUE){                $this->writeCache($row);            }            $this->options = array();        }        return $row;    }    /**     * 读取结果集中的所有记录到数组中     *     * @access public     * @param  resource  $result  结果集     * @return array     */    public function fetchAll($result = NULL){        $rows = array();        while ($row = $this->fetch($result)){            $rows[] = $row;        }        return $rows;    }    /**     * 读取结果集中的一行记录到数组中     *     * @access public     * @param  resource  $result  结果集     * @param  int       $type    返回类型, 1为数组, 2为对象     * @return mixed              根据返回类型返回     */    public function fetch($result = NULL, $type = NULL){        $result = is_null($result) ? $this->result: $result;        $type = is_null($type) ? $this->returnType: $type;        $func = $type === 1 ? 'mysql_fetch_assoc' : 'mysql_fetch_object';        return $func($result);    }    /**     * 执行SQL命令     *     * @access      public     * @param       string    $sql    SQL命令     * @param       resource  $link   数据库连接标识     * @return      mixed             数据库结果集     */    public function query($sql = '', $link = NULL){        $sql = empty($sql) ? $this->sql: $sql;        $link = is_null($link) ? $this->link: $link;        $this->result = mysql_query($sql, $link);        if (is_resource($this->result)){            return $this->result;        }        //如果执行SQL出现错误, 那么抛出异常        exit('<strong>Mysql error:</strong>'.$this->getError());    }    /**     * 执行SQL命令     *     * @access      public     * @param       string    $sql    SQL命令     * @param       resource  $link   数据库连接标识     * @return      bool              是否执行成功     */    public function execute($sql = '', $link = NULL){        $sql = empty($sql) ? $this->sql: $sql;        $link = is_null($link) ? $this->link: $link;        if (mysql_query($sql, $link)){            return TRUE;        }        return FALSE;    }    /**     * 插入记录     *     * @access public     * @param  array  $data  插入的记录, 格式:array('字段名'=>'值', '字段名'=>'值');     * @param  string $table 表名     * @return bool          当前记录id     */    public function add($data, $table = NULL){        $table = is_null($table) ? $this->table: $table;        $sql = "INSERT INTO `{$table}`";        $fields = $values = array();        $field = $value = '';        //遍历记录, 格式化字段名称与值        foreach($data as $key => $val){            $fields[] = "`{$table}`.`{$key}`";            $values[] = is_numeric($val) ? $val : "'{$val}'";        }        $field = join(',', $fields);        $value = join(',', $values);        unset($fields, $values);        $sql .= "({$field}) VALUES({$value})";        $this->sql = $sql;        $this->execute();        return $this->insertId();    }    /**     * 删除记录     *     * @access public     * @param  string  $where  条件     * @param  string  $table  表名     * @return bool            影响行数     */    public function delete($where = NULL, $table = NULL){        $table = is_null($table) ? $this->table: $table;        $where = is_null($where) ? @$this->options['where']: $where;        $sql = "DELETE FROM `{$table}` WHERE {$where}";        $this->sql = $sql;        $this->execute();        return $this->affectedRows();    }    /**     * 更新记录     *     * @access public     * @param  array   $data   更新的数据 格式:array('字段名' => 值);     * @param  string  $where  更新条件     * @param  string  $table  表名     * @return bool            影响多少条信息     */    public function update($data, $where = NULL, $table = NULL){        $table = is_null($table) ? $this->table: $table;        $where = is_null($where) ? @$this->options['where']: $where;        $sql = "UPDATE `{$table}` SET ";        $values = array();        foreach($data as $key => $val){            $val = is_numeric($val) ? $val : "'{$val}'";            $values[] = "`{$table}`.`{$key}` = {$val}";        }        $value = join(',', $values);        $this->sql = $sql.$value." WHERE {$where}";        $this->execute();        return $this->affectedRows();    }    /**     * 读取缓存     *     * @access      public     * @return      mixed   如果读取成功返回缓存内容, 否则返回NULL     */    protected function readCache(){        $file = $this->getCacheFileName();        if (file_exists($file)){            //缓存过期            if ((filemtime($file) + $this->cacheLimitTime) returnType){                $row = include $file;            }            else{                $data = file_get_contents($file);                $row = unserialize($data);            }            return $row;        }        return NULL;    }    /**     * 写入缓存     *     * @access      public     * @param       mixed   $data   缓存内容     * @return      bool            是否写入成功     */    public function writeCache($data){        $file = $this->getCacheFileName();        if ($this->makeDir(dirname($file))){            if (1 === $this->returnType){				$data = '<?php return '.var_export($data, TRUE).';?>';			}else{				$data = serialize($data);			}		}        return file_put_contents($file, $data);    }	/*	 * 清除缓存文件	 * string $fileName 指定文件名(含函数)或者all(全部)	 * 返回:清除成功返回true,反之返回false	 */	function clearCache( $fileName = "all" ) {		if( $fileName != "all" ) {			if( file_exists( $fileName ) ) {				return @unlink( $fileName );			}else return false;		}		if ( is_dir( $this->cachePath ) ) {			if ( $dir = @opendir( $this->cachePath ) ) {				while ( $file = @readdir( $dir ) ) {					$check = is_dir( $file );					if ( !$check )					@unlink( $this->cachePath . $file );				}				@closedir( $dir );				return true;			}else{				return false;			}		}else{		  return false;		}	}	  /*	   * 连续建目录	   * string $dir 目录字符串	   * int $mode   权限数字	   * 返回:顺利创建或者全部已建返回true,其它方式返回false	   */	function makeDir( $dir, $mode = "0777" ) {		if( ! $dir ) return 0;		$dir = str_replace( "\\", "/", $dir );				$mdir = "";		foreach( explode( "/", $dir ) as $val ) {			$mdir .= $val."/";			if( $val == ".." || $val == "." || trim( $val ) == "" ) continue;		  			if( ! file_exists( $mdir ) ) {				if([email protected]( $mdir, $mode )){					return false;				}			}		}		return true;	}	//自动加载函数, 实现特殊操作    public function __call($func, $args)    {         if(in_array($func, array('field', 'join', 'where', 'order', 'group', 'limit', 'having')))         {               $this->options[$func] = array_shift($args);               return $this;         } elseif($func === 'table'){               $this->options['table'] = array_shift($args);               $this->table            = $this->options['table'];               return $this;         }        //如果函数不存在, 则抛出异常         exit('Call to undefined method Db::' . $func . '()');     }//-------------------------------------------        //返回上一次操作所影响的行数    public function affectedRows($link = null){		$link = is_null($link) ? $this->link : $link;		return mysql_affected_rows($link);    }        //返回上一次操作记录的id    public function insertId($link = null){        $link = is_null($link) ? $this->link : $link;        return mysql_insert_id($link);    }        //清空结果集    public function free($result = null){         $result = is_null($result) ? $this->result : $result;         return mysql_free_result($result);    }        //返回错误信息	public function getError($link = NULL){        $link = is_null($link) ? $this->link : $link;        return mysql_error($link);    }        //返回错误编号	public function getErrno($link = NULL){        $link = is_null($link) ? $this->link : $link;        return mysql_errno($link);    }}?>
Nach dem Login kopieren
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Dec 29, 2023 pm 02:27 PM

Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

Detaillierte Erläuterung der Verwendung von Return in der C-Sprache Detaillierte Erläuterung der Verwendung von Return in der C-Sprache Oct 07, 2023 am 10:58 AM

Die Verwendung von return in der C-Sprache ist: 1. Für Funktionen, deren Rückgabewerttyp ungültig ist, können Sie die Rückgabeanweisung verwenden, um die Ausführung der Funktion vorzeitig zu beenden. 2. Für Funktionen, deren Rückgabewerttyp nicht ungültig ist, ist die Funktion von Die Return-Anweisung dient dazu, die Ausführung der Funktion zu beenden. 3. Beenden Sie die Ausführung der Funktion vorzeitig wenn die Funktion keinen Wert zurückgibt.

Fix: Snipping-Tool funktioniert unter Windows 11 nicht Fix: Snipping-Tool funktioniert unter Windows 11 nicht Aug 24, 2023 am 09:48 AM

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Wie ist die Ausführungsreihenfolge von Return- und Final-Anweisungen in Java? Wie ist die Ausführungsreihenfolge von Return- und Final-Anweisungen in Java? Apr 25, 2023 pm 07:55 PM

Quellcode: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}# Ausgabe Die Ausgabe des obigen Codes kann einfach zu dem Schluss kommen: return wird ausgeführt, bevor wir uns schließlich ansehen, was auf der Bytecode-Ebene passiert. Im Folgenden wird ein Teil des Bytecodes der Methode case1 abgefangen und mit dem Quellcode verglichen, um die Bedeutung jeder Anweisung darin zu kommentieren

So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone Jul 29, 2023 am 08:22 AM

Teil 1: Erste Schritte zur Fehlerbehebung Überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen Lösungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt möglicherweise nicht an Ihrem Gerät; die Server von Apple sind möglicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgemäß funktioniert. Wenn es ein Problem gibt, können Sie nur warten, bis Apple es behebt. Überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem „Verbindung zum AppStore nicht möglich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Wie verwendet Vue3 den Setup-Syntaxzucker, um das Schreiben von Return zu verweigern? Wie verwendet Vue3 den Setup-Syntaxzucker, um das Schreiben von Return zu verweigern? May 12, 2023 pm 06:34 PM

Vue3.2-Setup-Syntaxzucker ist ein Syntaxzucker zur Kompilierungszeit, der die kombinierte API in einer einzelnen Dateikomponente (SFC) verwendet, um das umständliche Setup in Vue3.0 zu lösen. Die durch den Import eingeführten deklarierten Variablen, Funktionen und Inhalte werden bereitgestellt Rückkehr, damit sie in Vue3.0 verwendet werden können. 1. Es besteht keine Notwendigkeit, deklarierte Variablen, Funktionen und Inhalte zurückzugeben, die durch Import während der Verwendung eingeführt wurden }from'./utils'//variable constmsg='Hello !'//function func

Der Unterschied zwischen Link und Import wird im Detail erklärt: Was sind die Unterschiede zwischen ihnen? Der Unterschied zwischen Link und Import wird im Detail erklärt: Was sind die Unterschiede zwischen ihnen? Jan 06, 2024 am 08:19 AM

Eingehende Analyse: Was ist der Unterschied zwischen Link und Import? Bei der Entwicklung von Webseiten oder Anwendungen müssen wir häufig externe CSS-Dateien oder JavaScript-Bibliotheken einführen, um unseren Code zu verbessern oder anzupassen. In diesem Prozess sind Verknüpfung und Import zwei häufig verwendete Methoden. Obwohl ihr Zweck darin besteht, externe Ressourcen einzuführen, gibt es einige Unterschiede in der spezifischen Verwendung. Syntax und Speicherort: Link: Verwenden Sie das Link-Tag, um externe Ressourcen in die HTML-Datei zu verlinken, die sich normalerweise am Kopf des HTML-Dokuments befindet

See all articles