
正文
php数据中台 php数据表
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
PHP网站怎么连接到数据库?
常规方式
常规方式就是按部就班的读取文件了。其余的话和上述方案一致。
// 读取配置文件内容
$handle = fopen("filepath", "r"); $content = fread($handle, filesize("filepath"));123
PHP解析XML
上述两种读取文件,其实都是为了PHP解析XML来做准备的。关于PHP解析XML的方式的博客有很多。方式也有很多,像simplexml,XMLReader,DOM啦等等。但是对于比较小型的xml配置文件,simplexml就足够了。
配置文件
?xml version="1.0" encoding="UTF-8" ?mysql
!-- 为防止出现意外,请按照此标准顺序书写.其实也无所谓了 --
hostlocalhost/host
userroot/user
password123456/password
dbtest/db
port3306/port/mysql12345678910
解析
?php/**
* 作为解析XML配置文件必备工具
*/class XMLUtil {
public static $dbconfigpath = "./db.config.xml"; public static function getDBConfiguration() {
$dbconfig = array (); try { // 读取配置文件内容
$handle = fopen(self::$dbconfigpath, "r"); $content = fread($handle, filesize(self::$dbconfigpath)); // 获取xml文档根节点,进而获取相关的数据库信息
$mysql = simplexml_load_string($content); // 将获取到的xml节点信息赋值给关联数组,方便接下来的方法调用
$dbconfig['host'] = $mysql-host; $dbconfig['user'] = $mysql-user; $dbconfig['password'] = $mysql-password; $dbconfig['db'] = $mysql-db; $dbconfig['port'] = $mysql-port; // 将配置信息以关联数组的形式返回
return $dbconfig;
} catch ( Exception $e ) { throw new RuntimeException ( "mark读取数据库配置文件信息出错!/markbr /" );
} return $dbconfig;
}
}1234567891011121314151617181920212223242526272829
数据库连接池
对于PHP程序而言,优化永无止境。而数据库连接池就在一定程度上起到了优化的作用。其使得对用户的每一个请求而言,无需每次都像数据库申请链接资源。而是通过已存在的数据库连接池中的链接来返回,从时间上,效率上,都是一个大大的提升。
于是,这里简单的模拟了一下数据库连接池的实现。核心在于维护一个“池”。
从池子中取,用毕,归还给池子。
?php/**x
* PHP中的数据库 工具类设计
* 郭璞
* 2016年12月23日
*
**/class DbHelper { private $dbconfig; private $dbpool; public $poolsize; public function __construct($poolsize = 20) { if (! file_exists ( "./utils.php" )) { throw new RuntimeException ( "markutils.php文件丢失,无法进行配置文件的初始化操作!/markbr /" );
}else {
require './utils.php';
} // 初始化 配置文件信息
$this-dbconfig = XMLUtil::getDBConfiguration (); // 准备好数据库连接池“伪队列”
$this-poolsize = $poolsize;
$this-dbpool = array (); for($index = 1; $index = $this-poolsize; $index ++) {
$conn = mysqli_connect ( $this-dbconfig ['host'], $this-dbconfig ['user'], $this-dbconfig ['password'], $this-dbconfig ['db'] ) or die ( "mark连接数据库失败!/markbr /" );
array_push ( $this-dbpool, $conn );
}
} /**
* 从数据库连接池中获取一个数据库链接资源
*
* @throws ErrorException
* @return mixed
*/
public function getConn() { if (count ( $this-dbpool ) = 0) { throw new ErrorException ( "mark数据库连接池中已无链接资源,请稍后重试!/mark" );
} else { return array_pop ( $this-dbpool );
}
} /**
* 将用完的数据库链接资源放回到数据库连接池
*
* @param unknown $conn
* @throws ErrorException
*/
public function release($conn) { if (count ( $this-dbpool ) = $this-poolsize) { throw new ErrorException ( "mark数据库连接池已满/markbr /" );
} else {
array_push ( $this-dbpool, $conn );
}
}
}
相关问答
Q1: 几种常用PHP连接数据库的代码示例
PHP连接数据库之PHP连接MYSQL数据库代码
?php $mysql_server_name= localhost ; //改成自己php数据中台的mysql数据库服务器 $mysql_username= root ; //改成自己的mysql数据库用户名 $mysql_password= ; //改成自己的mysql数据库密码 $mysql_database= mycounter ; //改成自己的mysql数据库名 $conn=mysql_connect($mysql_server_name $mysql_username $mysql_password $mysql_database); $sql= CREATE DATABASE mycounter DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; ; mysql_query($sql); $sql= CREATE TABLE `counter` (`id` INT( ) UNSIGNED NOT NULL AUTO_INCREMENT `count` INT( ) UNSIGNED NOT NULL DEFAULT PRIMARY KEY ( `id` ) ) TYPE = innodb; ; mysql_select_db($mysql_database $conn); $result=mysql_query($sql); //echo $sql; mysql_close($conn); echo "Hello!数据库mycounter已经成功建立php数据中台!"; ?
PHP连接数据库之PHP连接ACCESS数据库代码方法
? $conn = new ("ADODB Connection"); $connstr = "DRIVER={Microsoft Access Driver (* mdb)}; DBQ=" realpath("data/db mdb"); $conn Open($connstr); $rs = new ("ADODB RecordSet"); $rs Open("select * from szd_t" $conn ); while(! $rs eof) { $f = $rs Fields( ); echo $f value; $rs MoveNext(); } ?
PHP连接数据库之PHP连接MS SQL数据库代码方法
安装SQL服务器并添加PHP的MSSQL扩展
使用以下代码连接并测试
?php $myServer = localhost; //主机 $myUser = sa; //用户名 $myPass = password; //密码 $myDB = Northwind; //MSSQL库名 $s = @mssql_connect($myServer $myUser $myPass) or die(Couldnt connect to SQL Server on $myServer); $d = @mssql_select_db($myDB $s) or die(Couldnt open database $myDB); $query = SELECT TitleOfCourtesy+ +FirstName+ +LastName AS Employee ; $query = FROM Employees ; $query = WHERECountry=USA AND Left(HomePhone ) = ( ); $result = mssql_query($query); $numRows = mssql_num_rows($result); echo h $numRows Row ($numRows == ? : s) Returned / h ; while($row = mssql_fetch_array($result)) { echo li $row[Employee] /li; } ?
PHP连接数据库之PHP连接Oracle数据库
PHP提供php数据中台了两套函数与Oracle连接 分别是ORA_和OCI函数 其中ORA_函数略显陈旧 OCI函数更新据说更好一些 两者的使用语法几乎相差无几 php数据中台你的PHP安装选项应该可以支持两者的使用
? if ($conn=Ora_Logon("user@TNSNAME" "password")) { echo "SUCCESS ! Connected to databasen"; }else {echo "Failed : ( Could not connect to databasen";} Ora_Logoff($conn); phpinfo(); ? lishixinzhi/Article/program/PHP/201405/30761
Q2: 应知道哪些PHP数据库的基础知识?
这个问题问得有点模糊,什么叫PHP数据库?应该是PHP操作数据库吧。如果是说PHP操作数据库的话,那你应该了解如下内容:
1、市面上有哪些数据库。市面上有很多数据库,既有SQL型的数据库,如MySql、SQLSever,也有Nosql型数据库,如Redis、Mongodb
2、PHP可以操作哪些数据库。PHP基本上可以操作市面上的所有数据库。
3、PHP是如何操作数据库的。PHP操作数据库是有两种方式,一种是使用PHP中对应数据库的扩展,如操作mysql,PHP可以使用Mysqli扩展;另一种是使用PDO扩展和对应的数据库驱动。
4、这些数据库扩展如何安装启动的。通常一些常见的数据库的扩展PHP源码是有包含的,如PDO、MySql,所以像这种你只需要在安装PHP时,通过设置几个参数来启用就好,但像Redis、Mongodb等这些PHP源码里没有包含,所以在安装好PHP后,你需要先下载这些扩展,然后编译,最后在php.ini文件里开启。
5、如何使用PHP代码操作这些数据库。在安装好对应的扩展后,你基本上就可以使用PHP代码操作数据库了,如连接数据库、执行数据库操作、关闭数据库,但具体怎么写,可以参考对应扩展的开发文档,一般文档都有明确说明。
了解了以上几点,你就可以使用PHP操作数据库了
Q3: PHP 数据问题
!--解决乱码问题。。自动选取gkh作为默认编码 --
meta http-equiv="Content-Type" content="text/html; charset=gbk"
!--
//数据库表bigclass
//字段bigclassid bigclassname bigclassname_en
//数据库表smallclass
//字段smallclassid smallclassname smallclassname_en bigclassname bigclassname_en--
?
require_once('config.php');
?
table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0"
tr
td align="center" valign="top" br
strong类 别 设 置/strong br
!--//此行本是中文代码,为什么成乱码了,以下类似都是一样--br
!--//乱码问题是由于编码引起的。编码不对。。。--br
table width="80%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000" class="border"
td width="538" height="25" align="center"font color="#FFFFFF"strong栏目/strong/font/td
td width="355" height="20" align="center"font color="#FFFFFF"strong操作/strong/font/td
/tr
!--标记开始--
?
// 你的数据库有问题哦,我是看不太明白
/*
$result = mysql_query("SELECT * FROM Bigclass",$db);
$rs = @mysql_fetch_array($result);
*/
$mysql_servername = "";//一般是 locahost
$mysql_username = "";// mysql用户名
$mysql_password = "";//mysql密码
$mysql_database ="";//数据库名
//数据库连接
$conn = mysql_connect($mysql_servername,$mysql_username,$mysql_password);
//选择数据库
$mysql_select_db($mysql_database,$connect);
//查询语句
$sql = "SELECT * FROM Bigclass"; //用的是你的 不知道对不 我也新手
//执行
$result = mysql_query($sql,$conn);///累勒 不写勒
?
tr bgcolor="ECF5FF" class="tdbg"
td width="538" height="22" bgcolor="#FCE3E7"img src="Images/tree_folder_02.gif" width="15" height="15"?echo ($rs["BigClassName"]);?(?echo ($rs["BigClassName_en"]);?)/td
td align="center" bgcolor="#FCE3E7"
a href="ClassAddSmall.php?BigClassName=? echo ($rs['BigClassName'])?BigClassName_en=? echo ($rs['BigClassName_en'])?"添加/a
| a href="ClassModifyBig.php?BigClassID=? echo ($rs['BigClassId'])?"修改/a
| a href="ClassDelBig.php?BigClassName=? echo ($rs['BigClassName'])?" onClick='return ConfirmDelBig();'删除/a/td
/tr
?
$result = mysql_query("SELECT * FROM smallclass ",$db);
/*此行如何定义使其数据值以表bigclass里bigclassname与本表smallclass里的bigclassname相等时,
才显示对应的小分类(smallcalssname)类似ASP里的:-----
set rsSmallClass=server.CreateObject("adodb.recordset")
rsSmallClass.open "Select * From SmallClass Where BigClassName='" rsBigClass("BigClassName") "'",conn,1,3
if not(rsSmallClass.bof and rsSmallClass.eof) then
do while not rsSmallClass.eof
循环
*/
while($myrow = mysql_fetch_array($result)) {
printf("
tr bgcolor=\"#E3E3E3\" class=\"tdbg\"
td width=\"538\" height=\"22\" bgcolor=\"#FCF1EF\" img src=\"Images/tree_folder_01.gif\" width=\"15\" height=\"15\"%s(%s)/td
td align=\"center\" bgcolor=\"#FCF1EF\"
a href=\"ClassModifySmall.php?SmallClassID=%s\"修/a
| a href=\"ClassDelSmall.php?SmallClassID=%s\" onClick='return ConfirmDelSmall();'删除/a/td
/tr\n",$myrow["SmallClassName"],$myrow["SmallClassName_en"],$myrow["SmallClassId"],$myrow["SmallClassId"]);
//此行能不能用其他方式来表示每一个%s, 对应就要一个$myrow["SmallClassId"]..数据多了就麻烦.
}
?
!--标记结束--
!--//以"标记"开始到结束.如果写一个循环语句?--
/table/td
/tr
/table
!--//请各位高手帮我修改此段代码.各注释一下.谢谢
//测试成功追加100分--
Q4: PHP相关技能的层次?
1、PHP编程能力
由于PHP的入门较为简单,所以暂时只有熟悉和精通两个级别。
1、熟悉PHP:精通PHP语法,昌平IT培训建议掌握常用的函数,熟悉PHP5下的OOP应用,这个是基础,也没什么好说的。
2、精通PHP:对PHP运行机制的理解;对系统资源的调用交互理解;关健性能的优化能力。
2、MySQL能力
在开发上的应用基于几个能力体现:
1、了解:知道用PHP连接数据库;懂得写一些简单的SQL;建一些简单的索引;懂得用工具简单操作一下数据库(增删改库表结构数据等等)。
2、熟悉:懂得在开发应用上设计数据库,建立一些有效的索引,用explain分析SQL性能,压力测试等等。
3、很熟悉:深入了解数据库索引、存储引擎原理以及运行机制,能有效地构建高性能可扩展的数据库结构/架构,有效地优化数据库性能配置并加以调试,分析数据库运行状态。
4、精通:简单地说具备以上所有能力的同时,有多年高负载分布式环境下的优化管理经验。
据我观察以及交往经验,70%的PHPer处在了解阶段,25%处于熟悉阶段,4%很熟悉,精通的人基本就不是phper了。
70%这个群体最容易忽视MySQL,以为MySQL只是简单的存储媒介,没有优化意识,认为加个内存、CPU就能解决问题。
典型事件:join、orderby、groupby等语句性能一塌糊涂,数据库根本没有设计(仅限于拆成一个主表,N个附表等),搞不清字段类型及作用,碰到大表的复杂查询就没辙。
20%这个群体的人只是MySQL运行机制理解不透彻,对影响MySQL性能的关健因素把握不明确,不熟练。
典型事件:熟读手册,但说不清索引原理,不知道二叉树、HASH等算法对于数据库的作用
4%的群体已经基本可以胜任DBA的职能。
3、OOP能力
1、了解:了解变量的作用域、类型,及其意义,了解继承机制等,懂得复用、封装概念。
2、熟悉:熟练应用接口、抽象等技术混合开发程序,并理解其中含义,一般研究过。
3、很熟悉:有过OOP架构设计经验,熟悉设计模式、UML,熟悉PHP对象运行机制,内容管理等。
4、精通:应该是架构师级别了,不限于PHP。
经常我们会碰到一些自称熟悉OOP却连public、private、protected、static都解释不清的人,是肯定没有经历过正规的OOP项目。
4、大型网站经验
1、了解:熟悉PHP开发下的缓存应用(memcache、APC等);接触过LVS、SQUID应用;有一定的session处理方案;熟悉负载均衡;熟悉PHP数据连接池应用;了解PHP编程性能优化。
2、熟悉:掌握分布式缓存及缓存性能优化、熟悉存储系统、文件系统、数据库,开发可扩展平台。能结合负载均衡合理布置流量,对PHP运行性能进行监控与分析。
3、非常熟悉:具备系统分析师能力,已经超出phper环节...
4、精通:太深奥..
5、操作系统应用能力
操作系统的熟悉与精通需要需要广泛且扎实的基础理论,而对于开发者来说,熟悉基本的命令操作,对WEB相关服务的安装、配置、优化能力需要具备。
Q5: 有关于PHP中常见数据类型的汇总分享
PHP
数据类型
PHP
支持八种原始类型(type)。
四种标量类型:
string(字符串)
integer(整型)
float(浮点型,也作
double
)
boolean(布尔型)
两种复合类型:
array(数组)
object(对象)
两种特殊类型:
resource(资源)
NULL(空)
查看变量类型
通过
gettype()
函数可以方便的查看某个变量的类型:
复制代码
代码如下:
?php$var_bool
=
TRUE;
//
a
boolean$var_str
=
"foo";
//
a
string$var_int
=
12;
//
an
integerecho
gettype($var_bool);
//
输出
booleanecho
gettype($var_str);
//
输出
stringecho
gettype($var_int);
//
输出
integer?
(PS:T不错的PHP
Q扣峮:276167802,验证:csl)
提示
由于历史原因,如果是
float
类型数据,gettype()
函数返回的是
double,而不是
float
。
如果想查看某个表达式的值和类型,请使用用
var_dump()
函数。
判断变量类型
如果想通过判断变量类型来确定下一步逻辑动作,不要使用
gettype()
,而使用
is_type
系列函数:
复制代码
代码如下:
?php$var_int
=
12;//
如果
$var_int
是
int
类型,这进行加法if
(is_int($var_int))
{
$var_int
=
$var_int+4;}echo
$var_int;
//
输出
16?
以上是本文关于PHP
数据类型的汇总,希望本文对广大php开发者有所帮助,感谢您阅读本文。
php数据中台的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php数据表、php数据中台的信息别忘了在本站进行查找喔。








