|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单。
导读
信任人人对PHP已很熟习了。PHP内置了几近对世界上一切的数据库的撑持,而不再需求从头扩大。所以有人说:不会用PHP挪用数据库,等于没学PHP。上面是笔者依据自己的操作经历和大侠们的定见而得出的总结,但愿能给初学者供应一些好处。
信任人人对PHP已很熟习了。PHP内置了几近对世界上一切的数据库的撑持,而不再需求从头扩大。所以有人说:不会用PHP挪用数据库,等于没学PHP。上面是笔者依据自己的操作经历和大侠们的定见而得出的总结,但愿能给初学者供应一些好处。
PHP挪用三种数据库的办法
本文对照具体的引见PHP挪用MySQL、ODBC和ORACLE数据库。
MySQL是一个玲珑灵珑的数据库办事器软件,关于中、小型使用体系长短常幻想的。除撑持尺度的ANSI SQL语句外,最主要的是,它还撑持多种平台,而在Unix/Linux体系上,MySQL撑持多线程运转体例,从而能取得相当好的功能。它和PHP、Apache一样,是属于开放源代码软件。其官方网站是:http://www.mysql.com,下面供应Windows,Linux,Unix版本的源代码的下载。
注重,MySQL会见函数都需求有响应的权限才干运转。经常使用的相干函数引见以下:
(1)integer mysql_connect(主机,用户名,口令);
此函数入手下手一个对指定主机上的MySQL数据库的毗连。若该数据库位于一个分歧地端口,则在主机名后加上冒号和端标语。一切参数均为可选的,缺省情形下分离对应为当地主机、用户正在履行的剧本名和空。主机可所以IP地址或域名。
在剧本履行停止时,毗连被主动封闭,也能够用mysql_close提早封闭。
(2)boolean mysql_create_db(数据库名);
创立一个数据库。注重必需用一个带有创立数据库允许权的帐号翻开毗连。
(3)boolean mysql_select_db(数据库名,毗连号);
选择缺省数据库。
(4)integer mysql_query(SQL语句,毗连号);
对指定命据库停止查询。假如SQL语句是select,则前往一个了局号,不然前往的值可以不睬会。假如掉败,前往false.。
(5)array mysql_fetch_array(了局号);
掏出下一行,前往一个数组.可以用数字下标会见(第一个字段是下标 0),也能够用字符串下标会见(即便用各字段名)。如已取了最初一行,前往 false.。
(6)mysql_fetch_row(了局号);
前往一个矩阵代表了局集中一行的一切域。每次挪用城市发生下一行,直到没有行剩下时前往false。每一个域值都由一个从零入手下手的偏移量索引。这是从查询中获得了局的最快办法。
(7)integer mysql_num_rows(了局号);
前往了局集中行的数量
(8)integer mysql_num_fields(了局号);
前往了局集中域的数量。
(9)integer mysql_list_dbs();
向办事器查询数据库列表。它前往一个了局指针,该指针可用于mysql_fetch_row函数及相似函数。
(10)mysql_list_tables(数据库名);
获得一个指向指定命据库的表单列表的了局指针。该了局指针可用于任何从了局集中获得行的函数。
(11)mysql_close(毗连号);
封闭对数据库的毗连。毗连必需是由mysql_connect翻开的。该函数的利用不是严厉必须的,由于在剧本停止时,一切非永世链路城市被主动封闭。
(12)mysql_pconnect(主机,用户名,口令);
与mysql_connect完整类似,但创立一个"永世毗连",该毗连一经创立永不封闭,即便利用mysql_close函数或法式履行终了也不封闭.下一次试图创立永世毗连时,体系如发明已存在一个永世毗连,则直接前往该毗连号而不从头创立。
上面是一个挪用MYSQL数据库并分页显示的例子。
<?
$pagesize = 5; //每页显示5笔记录
$host="localhost";
$user="user";
$password="psw";
$dbname="book"; //所查询的库表名;
//毗连MySQL数据库
mysql_connect("$host","$user","$password") or die("没法毗连MySQL数据库办事器!");
$db = mysql_select_db("$dbname") or die("没法毗连数据库!");
$sql = "select count(*) as total from pagetest";//生成查询纪录数的SQL语句
$rst = mysql_query($sql) or die("没法履行SQL语句:$sql !"); //查询纪录数
$row = mysql_fetch_array($rst) or die("没有更多的纪录!"); /掏出一笔记录
$rowcount = $row["total"];//掏出纪录数
mysql_free_result($rst) or die("没法释放result资本!"); //释放result资本
$pagecount = bcdiv($rowcount+$pagesize-1,$pagesize,0);//算出总共有几页
if(!isset($pageno)) {
$pageno = 1; //在没有设置pageno时,缺省为显示第1页
}
if($pageno<1) {
$pageno = 1; //若pageno比1小,则把它设置为1
}
if($pageno>$pagecount) {
$pageno = $pagecount; //若pageno比总共的页数大,则把它设置为最初一页
}
if($pageno>0) {
$href = eregi_replace("%2f","/",urlencode($PHP_SELF));//把$PHP_SELF转换为可以在URL上利用的字符串,如许的话就能够处置中文目次或中文文件名
if($pageno>1){//显示上一页的裢接
echo "<a href="" . $href . "?pageno=" . ($pageno-1) . "">上一页</a> ";
}
else{
echo "上一页";
}
for($i=1;$i<$pageno;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
echo $pageno . " ";
for($i++;$i<=$pagecount;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
if($pageno<$pagecount){//显示下一页的裢接
echo "<a href="" . $href . "?pageno=" . ($pageno+1) . "">下一页</a> ";
}
else{
echo "下一页 ";
}
$offset = ($pageno-1) * $pagesize;//算出本页第一笔记录在全部表中的地位(第一笔记录为0)
$sql = "select * from pagetest LIMIT $offset,$pagesize";//生成查询本页数据的SQL语句
$rst = mysql_query($sql);//查询本页数据
$num_fields = mysql_num_fields($rst);//获得字段总数
$i = 0;
while($i<$num_fields){//获得一切字段的名字
$fields[$i] = mysql_field_name($rst,$i);//获得第i+1个字段的名字
$i++;
}
echo "<table border="1" cellspacing="0" cellpadding="0">";//入手下手输入表格
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//显示字段称号
echo "<th>$field_name</th>";
}
echo "</tr>";
while($row=mysql_fetch_array($rst)){//显示本页数据
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//显示每一个字段的值
$field_value = $row[$field_name];
当然你可以把你最基本的功能放出来的时候就放出来,比如放到论坛上,让大家都参与, |
|