PHP学习笔记--第五章.数据库交互

本文深入探讨了PHP4.1支持的多种数据库及其交互方式,包括MySQL、mSQL、MSSQL等,并详细介绍了PHP特定数据库函数的使用,如连接数据库、选择正确数据库、查询、插入、读取和删除数据等操作,以及DBX函数的运用,同时提供了实例代码演示,旨在帮助开发者熟练掌握数据库操作与PHP结合的应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第五章.数据库交互
一、PHP4.1支持的数据库
1.MySQL
2.mSQL
3.MS SQL
4.filePro(Read only)
5.Informix
6.interBase
7.Oracle
8.Ovrimos
9.Sybase
10.DB++
11.DBM
12.PostgreSQL
13.Frontbase
 
二、PHP的特定数据库函数
1.连接数据库服务器
       1).*_connect
              mysql_connect(server,user,password);
              mssql_connect(server,user,password);  
//找到php.ini ;extension=php_mssql.dll把前面去掉保存,重启apache服务器
              pg_connect(string);
              如:
                     pg_connect(“host=localhost prot=5432 dbname=test user=name password=123”);
                     $handle = mssql_connect("7BB2389B11EA496","sa");
       2).*_pconnect
              mysql_pconnect(server,user,password);
              mssql_pconnect(server,user,password);
              pg_pConnect(string);
说明:
本函数和*_connect()雷同。不同的地方在于使用本函数打开数据库时,程序会先寻找是否曾经执行过本函数,若执行过则返回先前执行的 ID。另一个不同的地方是本函数无法使用 *_close() 关闭数据库。
 
注:
       (1). server:为服务器主机名或IP地址
              user:为登录用户名
              password:为登录密码
       (2). host:为主机名
              port:为端口
              dbname:为数据库名
              user:为用户名
              password:为密码
2.选择正确的数据库(MS SQL和MySQL)
       mysql_select_db(datebasestring,sqlcon);
或    mssql_select_db(datebasestring, sqlcon);
注:datebasestring:为数据库名称
       sqlcon:为数据库连接名
       如:
$handle = msql_connect("localhost","root","");
msql_select_db("userinfo", $handle);           ‘userinfo:
数据库名字
3.数据库查询、插入、读取和删除数据
       mysql_query(sqlstring,sqlcon);
       mssql_query(sqlstring sqlcon);
注:sqlstring:为要执行的SQL语句
       sqlcon:为数据库连接名
4.查询结果的返回值
       1). fetch_array
       mysql_fetch_array(result);
       mssql_fetch_array(result);
       pg_fetch_array(result);
注:
       结果中的数据被装入数组(关联和索引)的域中。数据的不同列将被装入不同的数组的域中数组的键值对应于返回数据的列名
       2). fetch_row
       mysql_fetch_row(result);
       mssql_fetch_row(result);
       pg_fetch_row(result):
注:
       本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引,第一个的索引值是 0。若 result 没有资料,则返回 false 值。
 
如:
       <?php
$conn = mysql_pconnect("localhost","root","");
if (!$conn) {
 echo "连接失败/n";
 exit;
}
mysql_select_db("cbw", $conn);
$result = mysql_query("SELECT * FROM admin",$conn);
if (!$result) {
 echo "查询失败/n";
 exit;
}
$fayy = mysql_fetch_row($result);
if($fayy){
 echo $fayy[0];
 echo $fayy[1];
 echo $fayy[2]."<br>";
}else{
 echo "出错";
}
?>
 
       3). fetch_object
       mssql_fetch_object(result);
注:
本函数用来将查询结果 result 拆到类变量中。使用方法和 mssql_fetch_array() 几乎相同,不同的地方在于本函数返回资料是而不是数组。若 result 没有资料,则返回 false 值。
如:
       <?php
$conn = mysql_pconnect("localhost","root","");
if (!$conn) {
 echo "连接失败/n";
 exit;
}
mysql_select_db("cbw", $conn);
$result = mysql_query("SELECT * FROM admin",$conn);
if (!$result) {
 echo "查询失败/n";
 exit;
}
$fayy = mysql_fetch_object($result);
if($fayy){
echo $fayy->sid."<br>";
 echo $fayy->sname."<br>";
 echo $fayy->ssex."<br>"
}
?>
       4).fetch_field
       注:
              获取查询结果中的列信息并以对象的形式返回
例:
       <?php
$handle = mysql_connect("localhost","root");
mysql_select_db("cbw", $handle);
$dbresult=mysql_query("select * from admin", $handle);
while($dbarray=mysql_fetch_field($dbresult)) {
 echo "字段名称:".$dbarray->name."/n<br>";
 echo " 所属表名:".$dbarray->table."/n<br>";
 echo " 列的最大长度:".$dbarray->max_length."/n<br>";
 echo " 列不可为空:".$dbarray->not_null."/n<br>";
 echo " 列为主键:".$dbarray->primary_key."/n<br>";
 echo " 列不是unique_key:".$dbarray->multiple_key."/n<br>";
 echo " 列为数字:".$dbarray->numeric."/n<br>";
 echo " 列为BLOB:".$dbarray->blob."/n<br>";
 echo " 列的类型:".$dbarray->type."/n<br>";
 echo " 列为无符号类型:".$dbarray->unsigned."/n<br>";
 echo " 列为BLOB:".$dbarray->blob."/n<br>";
 echo " 列为零填充:".$dbarray->zerofill."/n<br><br>";
}
mysql_close($handle);
?>
 
综合实例:查询结果的返回值
       <?php
$handle = mysql_connect("localhost","root","");               //创建数据库连接
if (!$handle) {                                                                      //如果连接不成功
 echo "连接失败/n";
 exit;
}
mysql_select_db("cbw", $handle);                                    //选择数据库
$dbresult=mysql_query("select * from admin", $handle);   //执行SQL语句
if (!$dbresult) {                                                             //如果查询失败
 echo "查询失败/n";
 exit;
}
while($dbarray=mysql_fetch_array($dbresult)) {               //返回数据给数组
 echo "<li>".$dbarray["1"]."__";                                          //索引数组元素(数字数组)
 echo $dbarray["sname"]."/n";                                       //索引数组元素(关联数组)
}
mysql_close($handle);                                                    //关闭数据库连接
?>
5.关闭数据库连接
       mysql_close();
       mssql_close();
       pg_close();
三、DBX函数
1.建立数据库连接
       dbx_connect(MODULE,HOST,DATABASE,USER,PASSWORD,PERSISTENT);
       参数如下:
       1).MODULE:
              DBX_MYSQL       MySQL数据库
              DBX_ODBC          任何支持ODBC连接的数据库
              DBX_PGSQL        PostgreSQL数据库
              DBX_MSSQL        MS SQL数据库
              DBX_FBSQL        Frontbase数据库
       2).HOST                      数据库主机名或IP地址
       3).DATABASE             数据库服务器上的数据库名
       4).USER                      用户名
       5).PASSWORD            密码
       6).PERSISTENT           是否永久连接,如果希望,让该值为DBX_PERSISTENT,否则不需要该参数
2.返回错误
       dbx_error(connectionstr);
       参数:connectionstr为dbx_connect()定义的连接标识符
3.执行SQL语句
       dbx_query(constr,sqlstr,flags);
       第一.参数:
       1).constr 为调用dbx_connect()定义的连接标识符
       2).sqlstr   标准SQL语句
       3).flags   用于指定一个或多个标识以指出查询需要返回多少信息。默认所有标识都是打开的。要指定标识,必须用“|”符号来分隔标识符
              标识符有:
                     [1].DBX_RESULT_INDEX 总会返回结果数组里的所有元素都由数字索引
                     [2].DBX_RESULT_INFO     返回字段的信息,如字符名字符和字段类型
                     [3].DBX_RESULT_ASSOC 设定返回数组的键值为字段名
       第二.返回属性
       1).handle        用 $result->handle 访问
       2).cols            结果集中的列数    $result->cols 访问
       3).rows          结果集中的行数    $result->rows 访问
       4).info           只有flags参数指定为DBX_RESULT_INFO或DBX_RESULT_ASSOC时才会返回。提供一个二维数级存放字段名和类型,用$rsult[‘info’][$x]和$result[‘name’][$x]访问,$x是某一行的索引     
       5).data           包含结果中的真实数据,用 $result->data[$x][字段名”]       (也可以是索引号)来访问, $x是某一行的索引
       例:
    <?php
$conn = dbx_connect(DBX_MYSQL,"localhost","cbw","root","");  
if (!$conn) {
 echo "连接失败/n";
 exit;
}
 
$result=@dbx_query($conn,"select * from admin");
if($result){
echo $result->data[1][2]."<br>";
echo $result->handle."<br>";
echo "列数:".$result->cols."<br>";
echo "行数:".$result->rows."<br>";
}else{
echo "出错了";
}
?>
4.数据排序
       dbx_sort(result,fun)
参数:
       result: dbx_query函数返回的结果
       fun:自定义排序函数
       例:
       function my_sort(){
              //语句
       }
       dbx_sort($result,”my_sort”);
5.比较函数
       dbx_compare(ROW1,ROW2,COLUMN KEY,FLAGS)
参数:
       1).ROW1                                   dbx_query函数返回的结果
       2).ROW2                                   dbx_query函数返回的结果
       3).COLUMN KEY               进行比较的列名
       4).FLAGS                           指定几个标识按升序或降序比较类型来进行比较,用“|”符号来分隔
              [1].DBX_CMP_ASC            按升序比较(默认)
              [2].DBX_CMP_DESC          按降序比较
              [3].DBX_CMP_NATIVE      “按照目前情况”比较项目
              [4].DBX_CMP_TEXT          按符串比较项目(默认)
              [5].DBX_CMP_NUMBER    按数字比较项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值