网站首页 > 文章中心 > 其它

php数据库函数教程

作者:小编 更新时间:2023-08-12 08:05:27 浏览量:264人看过

php里说出数组的常用函数及用法?

PHP常用操作数组的函数

变量和数组的转换

compact() 将变量整合成数组

extract() 将数组中的每个值以键的名分解成变量

变量和字符串转换

explode() 以某个子串分解字符串成数组

implode() 将一维数组根据某个符号拼接成字符串

数组与数组之间关系

array_merge() 合并/并集

array_diff() 差集

array_intersect() 交集

数组值的操作

array_pop() 删除(弹出)数组最后一个值

array_push() 向数组中追加一个值

判断数组是否存在数组中

in_array() 判断一个值是否存在数组中

array_key_exists() 判断键是否存在数组中

数组去重

array_unique() 数组去重

获取二维数组中的值的集合

array_column() 获取二维数组中的值的集合

提取数组的键与值

array_values 提取数组的值构成一维数组

array_keys 提取数组的键构成一维数组

返回数组中的随机的键

array_rand() 返回数组中的随机的键

返回数组中值的数量

count() 返回数组中值的和

查询数组中的值

array_search() 查询数组中的值是否存在/in_array()有点相似

排序

sort() 排序有很多种,按键或值升降序

array_multisort() 多维数组排序

分割数组

array_chunk()

thinkphp对数据库操作有哪些内置函数

getModelName() 获取当前Model的名称

getTableName() 获取当前Model的数据表名称

switchModel(type,vars=array()) 动态切换模型

table() 设置当前操作的数据表

field() 设置要查询的数据字段

where() 设置查询或者操作条件

data(data) 设置数据对象

order(order) 设置排序

limit(limit) 查询限制

page(page) 查询分页

join(join) 进行JOIN查询

having(having) 进行having查询

group(group) 进行group查询

lock(lock) 查询锁定

distinct(distinct) 唯一性查询

count(field) 记录统计

sum(field) 总数查询

min(field) 最小值查询

max(field) 最大值查询

avg(field) 平均值查询

_initialize() 模型初始化方法

_facade(data) 对保存到数据库的数据进行处理

_before_write(data) 写入数据前的回调方法 包括新增和更新

add(data='',options=array()) 新增数据

_before_insert(data,options) 写入数据前的回调方法

_after_insert(data,options) 写入数据后的回调方法

selectAdd(fields='',table='',options=array()) 通过Select方式添加记录

save(data='',options=array()) 更新数据到数据库

_before_update(data,options) 更新数据前的回调方法

_after_update(data,options) 更新成功后的回调方法

delete(options=array()) 删除数据

_after_delete(data,options) 删除成功后的回调方法

select(options=array()) 查询数据集

_after_select(resultSet,options) 查询成功后的回调方法

findAll(options=array()) select方法的别名

_options_filter(options) 表达式过滤回调方法

find(options=array()) 查询数据

_after_find(result,options) 查询成功的回调方法

setField(field,value,condition='') 设置记录的某个字段值

setInc(field,condition='',step=1) 字段值增长

setDec(field,condition='',step=1) 字段值减少

getField(field,condition='',sepa=' ') 获取某个字段值

create(data='',type='') 创建数据对象

autoCheckToken(data) 表单令牌验证

query(sql) 执行原生SQL查询

execute(sql='') 执行原生SQL操作

startTrans() 启动事务

commit() 提交事务

rollback() 事务回滚

getError() 获取模型的错误信息

getDbError() 获取数据库的错误信息

getLastInsID() 获取最后执行的SQL语句

getPk() 获取主键名称

getDbFields() 获取数据表的字段信息

regex(value,rule) 使用正则验证数据

setProperty(name,value) 设置模型的属性值

db(linkNum,config='') 切换当前数据库连接

高级模型类AdvModel

topN(count,options=array()) 查询满足条件的前N个记录

getN(position=0,options=array()) 查询符合条件的第N条记录

0 表示第一条记录 -1 表示最后一条记录

first(options=array()) 获取满足条件的第一条记录

last(options=array()) 获取满足条件的最后一条记录

returnResult(data,type='') 返回指定的数据类型

setLazyInc(field,condition='',step=1,lazyTime=0) 字段值延迟增长

setLazyDec(field,condition='',step=1,lazyTime=0) 字段值延迟减少

addConnect(config,linkNum=NULL) 增加数据库连接

delConnect(linkNum) 删除数据库连接

closeConnect(linkNum) 关闭数据库连接

switchConnect(linkNum,name='') 切换数据库连接

patchQuery(sql=array()) 批处理执行SQL语句

getPartitionTableName(data=array()) 得到分表的的数据表名

关于PHP数据库

PHP调用三种数据库的方法

本文比较详细的介绍PHP调用MySQL、ODBC以及ORACLE数据库.

注意,MySQL访问函数都需要有相应的权限才能运行.常用的相关函数介绍如下:

(1)integer mysql_connect(主机,用户名,口令);

此函数开始一个对指定主机上的MySQL数据库的连接.若该数据库位于一个不同地端口,则在主机名后加上冒号和端口号.所有参数均为可选的,缺省情况下分别对应为本地主机、用户正在执行的脚本名和空.主机可以是IP地址或域名.

在脚本执行结束时,连接被自动关闭,也可以用mysql_close提前关闭.

创建一个数据库.注意必须用一个带有创建数据库许可权的帐号打开连接.

选择缺省数据库.

对指定数据库进行查询.如果SQL语句是select,则返回一个结果号,否则返回的值可以不理会.如果失败,返回false..

取出下一行,返回一个数组.可以用数字下标访问(第一个字段是下标 0),也可以用字符串下标访问(即使用各字段名).如已取了最后一行,返回 false..

返回一个矩阵代表结果集中一行的所有域.每次调用都会产生下一行,直到没有行剩下时返回false.每个域值都由一个从零开始的偏移量索引.这是从查询中获取结果的最快方法.

返回结果集中行的数目

返回结果集中域的数目.

向服务器查询数据库列表.它返回一个结果指针,该指针可用于mysql_fetch_row函数及类似函数.

(10)mysql_list_tables(数据库名);

获取一个指向指定数据库的表单列表的结果指针.该结果指针可用于任何从结果集中获取行的函数.

(11)mysql_close(连接号);

关闭对数据库的连接.连接必须是由mysql_connect打开的.该函数的使用不是严格必需的,因为在脚本结束时,所有非永久链路都会被自动关闭.

与mysql_connect完全相似,但建立一个"永久连接",该连接一经建立永不关闭,即使使用mysql_close函数或程序执行完毕也不关闭.下一次试图建立永久连接时,系统如发现已存在一个永久连接,则直接返回该连接号而不重新创建.

下面是一个调用MYSQL数据库并分页显示的例子.

$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资源

if(!isset($pageno)) {

$pageno = 1; //在没有设置pageno时,缺省为显示第1页

}

if($pageno1) {

$pageno = 1; //若pageno比1小,则把它设置为1

if($pageno$pagecount) {

$pageno = $pagecount; //若pageno比总共的页数大,则把它设置为最后一页

if($pageno0) {

if($pageno1){//显示上一页的裢接

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++){

if($pageno$pagecount){//显示下一页的裢接

echo "a href="" . $href . "?pageno=" . ($pageno+1) . ""下一页/a ";

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)){//显示本页数据

while(list(,$field_name)=each($fields)){//显示每个字段的值

$field_value = $row[$field_name];

if($field_value==""){

echo "td /td";

echo "td$field_value/td";

echo "/table";//表格输出结束

mysql_free_result($rst) or die("无法释放result资源!");//释放result资源

echo "目前该表中没有任何数据!";

mysql_close($server) or die("无法与服务器断开连接!");//断开连接并释放资源

开放数据库连接(ODBC)已成为一种与数据库进行通信的工业标准.PHP也提供了标准的接口,使得PHP能调用Access,SQL SERVER等数据库.其相关函数是:

(1)integer odbc_connect(string dsn, string user, string password)

连接到一个ODBC数据库源名字上.

在一个连接上执行查询.

从一个结果集中获取一行数据.Row参数是可选的,若为空缺,则返回下一个有效行.在结果集中不再剩余行时返回false.

关闭一个数据库的连接.若在该连接上有打开的事务,则返回一个错误,而且连接不会被关闭.

最后,还是看个分页的例子:

//设定每页显示条数

$show_num = 10;

$spages = $pages;//避免$pages后期被改变

//定义连接

$dsn = "localhost";

$user = "sa";

$password = "";

//计算总记录数

$rs_num = "select count(*) as id from bbs where zu='0' and lei='".$lei."'";

$conn_id = odbc_connect($dsn,$user,$password);

$rnum = odbc_exec($conn_id,$rs_num);

while(odbc_fetch_row($rnum)){

$total_rs = odbc_result($rnum,"id");//将总记录数放入$total_rs变量

//计算与页有关的条数

$nnn = $total_rs / $show_num;//计算总页数

$hnnn = intval($nnn);//将总页数取整

$cnnnn = $nnn - $hnnn;

//计算所需总页数

switch ($cnnn){

case "0":

$hnnn++;

$nnn = $hnnn;//总页数

break;

default :

};

if ($nnn == 0)$nnn++;

//计算页面改变所需的条件

$fore = $pages;

$next = $pages;

$fore -= 1;

$next += 1;

if ($fore 0) {

echo "a首页/a";

echo "a前页/a";

if ($pages $nnn) {

echo "a后页/a";

echo "a尾页/a";

echo "共".$nnn."页";

$query_string = "SELECT * FROM table where condition order by you wanted order";

$cur = odbc_exec($conn_id,$query_string);

//取到循环的顶部

$cnum = ($pages-1) * $show_num;//计算当前的记录游标的位置

//空循环到显示记录游标处

if ($cnum != 0){

for ($i=0;$i=$cnum;odbc_fetch_row($cur)){$i++;};

$i=1;

//显示记录

while(odbc_fetch_row($cur)){

echo ;

if ($i == $show_num){//在不满页数时跳出程序

//关闭连接

odbc_close($conn_id);

Oracle(甲骨文)是世界上最为流行的关系数据库.它是大公司推崇的工业化的强有力的引擎.我们先看看其相关的函数:

(1)integer ora_logon(string user , string password)

开始对一个Oracle数据库服务器的连接.

打开给出的连接的游标.

在给出的连接上执行查询.PHP生成一个指示器,解析查询,并执行之.

解析一个查询并准备好执行.

执行一个先前由ora_parse函数解析过的查询.

此函数会使得一个执行过的查询中的行被取到指示器中.这使得您可以调用ora_getcolumn函数.

返回当前的值.列由零开始的数字索引.

断开对数据库服务器的链接.

以下是向ORACLE数据库插入数据的示例程序:

html

headtitle向ORACLE数据库中插入数据/title/head

body

form action="?echo $PHP_SELF;?" method="post"

table border="1" cellspacing="0" cellpadding="0"

tr

thID/th

thname/th

thDescription/th

/tr

tr align="center"

/table

/form

//先设置两个环境变量ORACLE_HOME,ORACLE_SID

//设置网页显示中文

if($connection=ora_logon("scott","tiger")) {

//库表test有ID,name,Description三项

$sql = 'insert into test(ID,name,Description) values ';

$sql .= '('' . $ID . '','' . $name . '',''. $Description . '')';

if($cursor=ora_do($connect,$sql)) {

print("insert finished!");

$query = 'select * from test';

if($cursor=ora_do($connect,$query)) {

ora_fetch($cursor);

$content0=ora_getcolumn($cursor,0);

$content1=ora_getcolumn($cursor,1);

print("$content0");

print("$content1");

ora_close($cursor);

ora_logoff($connection);

/body

/html

通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据. MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程.MySQL是免费的,这一点也许就吸引了不少人.由于其广泛应用, 我就不想今天这一节赘述MySQL的使用方法了.Oracle被大量在企业应用中采用,所以呢我们就利用Oracle来介绍PHP与数据库的连接.我们当然不会 提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围.

PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数.其中ORA_函数略显陈旧.OCI函数更新据说更好一些.两者的使用语法几乎相差无几.如前所述,你的PHP安装选项应该可以支持两者的使用.

{

echo "SUCCESS ! Connected to database\n";

else

echo "Failed :-( Could not connect to database\n";

Ora_Logoff($conn);

phpinfo();

以上代码使用TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库.在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中.

假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询.下面的代码演示了一个连接并查询的典型例子:

/*

* 连接数据库并执行查询

*/

function printoraerr($in_cur)

// 检查Oracle是否出错

// 如果存在错误则显示

// 当指针被激活时每次请求Oracle后调用该函数

if(ora_errorcode($in_cur))

echo "Oracle code - ".ora_error($in_cur)."\n";

return;

/** 主程序 */

echo "Connection to database failed\n";

exit;

echo "Connected as connection - $conn

\n";

echo "Opening cursor ...

$cursor=ora_open($conn); printoraerr($cursor);

echo "Opened cursor - $cursor

$qry="select user,sysdate from dual";

echo "Parsing the query $qry ...

ora_parse($cursor,$qry,0); printoraerr($cursor);

echo "Query parsed

echo "Executing cursor ...

ora_exec($cursor); printoraerr($cursor);

echo "Executed cursor

echo "Fetching cursor ...

while(ora_fetch($cursor))

$user=ora_getcolumn($cursor,0); printoraerr($cursor);

$sysdate=ora_getcolumn($cursor,1); printoraerr($cursor);

echo " row = $user, $sysdate

echo "Fetched all records

echo "Closing cursor ...

echo "Closed cursor

echo "Logging off from oracle...

ora_logoff($conn);

echo "Logged off from oracle

(译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分)

以下代码演示了怎样查询数据库并将结果输出:

function printoraerr($in_cur, $conn)

// If it encountered an error, we exit immediately

echo "Oracle code - ".ora_error($in_cur)."

n";

function exequery($w_qry,$conn)

$cursor=ora_open($conn); printoraerr($cursor,$conn);

ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn);

ora_exec($cursor); printoraerr($cursor,$conn);

$numrows=0;

$w_numcols=ora_numcols($cursor);

// 显示头部

echo "

for ($i=0;$i$w_numcols;$i++)

$align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT";

echo "\t ".ora_columnname($cursor,$i)." \n";

echo " \n";

if(ora_columntype($cursor,$i)=="LONG")

echo " ".

ora_getcolumn($cursor,$i)."

echo " ".ora_getcolumn($cursor,$i)." \n";

printoraerr($cursor,$conn);

$numrows++;

if ($numrows==0)

echo " Query returned no records

echo " Count \n";

echo " $numrows \n";

// 主程序

echo "Error: Cannot connect to database\n";

$qry="SELECT

deptno \"Dept\"

,empno \"Emp\"

,empnm \"Name\"

,salary \"Salary\"

FROM

employee

exequery($qry);

将以下代码加在PHP页面代码之前以确认Oracle登录.注意你必须正确设定$ SID.

if(!isset($PHP_AUTH_USER))

Header("WWW-authenticate: basic realm=\"$SID\"");

$title="Login Instructions";

You are not authorized to enter the site

if (!($conn=ora_logon("$PHP_AUTH_USER@$SID",$PHP_AUTH_PW)))

You are not authorised to enter the site

PHP mysql_result()函数使用方法

mysql_result定义和用法

mysql_result()

函数返回结果集中一个字段的值.

返回

MySQL

结果集中一个单元的内容.字段参数可以是字段的偏移量或者字段名,或者是字段表点字段名(tablename.fieldname).如果给列起了别名('select

foo

as

bar

from...'),则用别名替代列名.

如果成功,则该函数返回字段值.如果失败,则返回

false.

调用

不能和其它处理结果集的函数混合调用.

语法

mysql_result(data,row,field)

参数

描述

data

必需.规定要使用的结果标识符.该标识符是

mysql_query()

函数返回的.

row

必需.规定行号.行号从

开始.

field

可选.规定获取哪个字段.可以是字段偏移值,字段名或

table.fieldname.

如果该参数未规定,则该函数从指定的行获取第一个字段.

说明

当作用于很大的结果集时,应该考虑使用能够取得整行的函数.这些函数在一次函数调用中返回了多个单元的内容,比

快得多.

此外请注意,在字段参数中指定数字偏移量比指定字段名或者

tablename.fieldname

要快得多.

例子

php

$con

=

mysql_connect("localhost",

"hello",

if

(!$con)

die('Could

not

connect:

'

.

mysql_error());

$db_selected

mysql_select_db("test_db",

$con);

$sql

"SELECT

*

from

Person";

$result

mysql_query($sql,$con);

echo

mysql_result($result,0);

mysql_close($con);

输出类似:

Adams

php中mysqli替换mysql_result的官方方法

pdo

.不多说了,贴代码

//

错略的使用mysqli替换

(!function_exists('mysql_result'))

function

mysql_result($result,

$number,

$field=0)

mysqli_data_seek($result,

$number);

$row

mysqli_fetch_array($result);

return

$row[$field];

好了,这篇文章就介绍到这了.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章