<?php/* * To change this template, choose Tools | Templates* and open the template in the editor.*//*** Description of db* 数据库查询类*///defined('SGM') or die('Error 404: page not find!');class Mysql { private $pre = '', $sql = ''; private $link = null, $q = null; private $rows = 0; private $begintime = 0; private $alltime = array(); public static $charset = "utf8"; /** * @var DB * @static * @access private */ private static $self = null; private $times = 0; public function Mysql ($host, $user, $pwd, $db, $pre = '') { $this->pre = $pre; $this->connect($host, $user, $pwd, $db); Mysql::$self = $this; } /** * @param string $host * @param string $host * @param string $pwd * @param string $db * @param string $pre * @return DB */ public static function init($host='', $user='', $pwd='', $db='', $pre = '') { if(!(Mysql::$self instanceof DB)){ Mysql::$self = new Mysql($host, $user, $pwd, $db, $pre); } return Mysql::$self; } /** * 创建连接 */ private function connect($host, $user, $pwd, $db, $pre = '') { $this->pre = $pre; if(! $this->link = mysql_connect($host, $user, $pwd)) die( 'Connection to mysql server could not be established.'); if(! mysql_select_db($db, $this->link)) die( 'Database could not be selected.'); } /** * 执行sql * @param string $sql * @return Mysql */ public function query($sql) { $this->times ++; $this->begintime = microtime(); mysql_query('SET NAMES '.self::$charset, $this->link); $this->sql = $sql; $this->q = mysql_query($sql, $this->link); $this->alltime[] = array('t' => microtime() - $this->begintime, 's' => $sql); return $this; } /** * 获取单个查询值 * @param string $sql * @return mixed */ public function getOne($sql = '') { if(strlen(trim($sql)) > 0){ $this->query($sql); } if($this->check()){ $result = mysql_fetch_array($this->q, MYSQL_NUM); mysql_free_result($this->q); return $result[0]; } return false; } /** * 获取一条记录 * @param string $sql * @return array */ public function getRow($sql = '') { if(strlen(trim($sql)) > 0){ $this->query($sql); } if($this->check()){ $result = mysql_fetch_assoc($this->q); mysql_free_result($this->q); return $result; }else{ return array(); } } /** * 获取所有查询 * @param string $sql * @return array */ public function getAll($sql = '') { if(strlen(trim($sql)) > 0){ $this->query($sql); } $return = array(); if($this->check()){ while($temp = mysql_fetch_assoc($this->q)) $return[] = $temp; $this->rows = mysql_num_rows($this->q); mysql_free_result($this->q); return $return; }else{ return array(); } } /** * 获取插入ID * @return int */ public function InsertId($seq=0) { return mysql_insert_id($this->link); } /** * 获取影响行数 * @return int */ public function rowNummber() { return $this->rows; } /** * 检查查询是否成功 * @return bool */ public function check() { return $this->q === false ? false : true; } /** * 获得连接 * @return resource */ public function getLink() { return $this->link; } /** * 获得本次连接的查询语句 * @return string */ public function getSQL() { return $this->sql; } /** * 获得类名 * @return string */ public function __toString() { return __CLASS__; } /** * 获得执行时间 * @return float */ public function getTimeInfo() { return $this->alltime; } /** * 获得执行次数 * @return Int */ public function getTimes() { return $this->times; } /** * 获得结果行数 * @return Int */ public function getResultRows() { $rows = mysql_num_rows($this->q); mysql_free_result($this->q); return $rows; } /** * $Id: Mysql.php 685 2009-12-03 10:49:04Z HH.Sun $ * 获得最后执行语句的错误 * @desc getLastError * @access public * @return string * @version $Revision: 685 $ */ public function getLastError(){ return mysql_error($this->link); } /** * $Id: Mysql.php 685 2009-12-03 10:49:04Z HH.Sun $ * mysql_real_escape_string 调用 * @desc escape * @access public * @param string $sql * @return string * * @since 2009-9-25 下午02:06:41 * @version $Revision: 685 $ */ public function escape($sql){ return mysql_real_escape_string($sql,$this->link); }}?> 初始化:<?PHP //如果是多个文件global下好了global $db;$db = new Mysql(...............................);$sql = "................................................";$one = $db->getOne($sql);$line = $db->getRow($sql);$all = $db->getAll($sql);//其他文件global $db;$sql = "................................................";$one = $db->getOne($sql);$line = $db->getRow($sql);$all = $db->getAll($sql);?>

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

在PHP中,trait适用于需要方法复用但不适合使用继承的情况。1)trait允许在类中复用方法,避免多重继承复杂性。2)使用trait时需注意方法冲突,可通过insteadof和as关键字解决。3)应避免过度使用trait,保持其单一职责,以优化性能和提高代码可维护性。

依赖注入容器(DIC)是一种管理和提供对象依赖关系的工具,用于PHP项目中。DIC的主要好处包括:1.解耦,使组件独立,代码易维护和测试;2.灵活性,易替换或修改依赖关系;3.可测试性,方便注入mock对象进行单元测试。

SplFixedArray在PHP中是一种固定大小的数组,适用于需要高性能和低内存使用量的场景。1)它在创建时需指定大小,避免动态调整带来的开销。2)基于C语言数组,直接操作内存,访问速度快。3)适合大规模数据处理和内存敏感环境,但需谨慎使用,因其大小固定。

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

JavaScript中处理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。1.??返回第一个非null或非undefined的操作数。2.??=将变量赋值为右操作数的值,但前提是该变量为null或undefined。这些操作符简化了代码逻辑,提高了可读性和性能。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

记事本++7.3.1
好用且免费的代码编辑器

Dreamweaver CS6
视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具