PHP操作mysql函数详解

PHP操作mysql函数详解

PHP操作mysql函数详解,没有学过mysqlphp交互的朋友可以自己看看这些函数

 

1. 建立和关闭连接

1) mysql_connect()

     resource mysql_connect([string hostname [:port][:/path/to/socket][,string username] [,string password]])

     所有参数都是可选的 

     举例:

     @mysql_connect("localhost", "user", "password")

     or die("Could not connect to mysql server!");

     注意,@符号表示禁止失败尝试导致的任何错误信息,用户将看到的是die()中指定的错误信息.

     

     注意,当与多个mysql进行连接时,必须指定每个连接的链接ID,如下:

     $link1 = @mysql_connect("server1", "user", "password")

     or die("Could not connect to mysql server!");

     $link2 = @mysql_connect("server2", "user", "password") 

     or die("Could not connect to mysql server!");

 

2) mysql_pconnect()

    resource mysql_pconnect([string hostname [:port][:/path/to/socket][,string username] [,string password]])

     与mysql_connect()不同的是:会首先查找现有链接,不存在时才创建

     注意,不需要显示关闭连接(mysql_close()),因为连接将放在池中,所以叫持久连接.

 

3) mysql_close() 

     boolean mysql_close([resource link_id])

     关闭连接不是必须的,因为可以由mysql的垃圾回收来处理.

     如果没有指定link_id,则关闭最近的链接.

 

2. 选择数据库 

     mysql_select_db()

     boolean mysql_select_db(string db_name [, resource link_id])

 

3. 查询MySql

1) mysql_query()

     resource mysql_query(string query [,resource link_id])

     负责执行query. 

 

2) mysql_db_query()

     resource mysql_db_query(string database, string query [, resource link_id])

     等价于mysql_select_db() + mysql_query(),从参数中就可以清楚的看出来.

    

4. 获取和显示数据 

1) mysql_result()

     mixed mysql_result(resource result_set, int row [,mixed field])

     从result_set 的指定row 中获取一个field 的数据简单但是效率低.

    

     举例:

     $link1 = @mysql_connect("server1", "webuser", "password") 

     or die("Could not connect to mysql server!");

     @mysql_select_db("company") or die("Could not select database!");

    

     $query = "select id, name from product order by name"; 

     $result = mysql_query($query);

     $id = mysql_result($result, 0, "id");

     $name = mysql_result($result, 0, "name");

    

     mysql_close(); 

    

     注意,上述代码只是输出结果集中的第一条数据的字段值,如果要输出所有记录,需要循环处理.

     ...

     for ($i = 0; $i <= mysql_num_rows($result); $i++)

     {

         $id = mysql_result($result, 0, "id");

         $name = mysql_result($result, 0, "name");

         echo "Product: $name ($id)";

     }

     ...

    

     注意,如果查询字段名是别名,mysql_result中就使用别名

 

2) mysql_fetch_row()

     array mysql_fetch_row(resource result_set)

     从result_set中获取整行,把数据放入数组中.

     举例(注意和list 的巧妙配合):

     ...

     $query = "select id, name from product order by name"; 

     $result = mysql_query($query);

     while(list($id, $name) = mysql_fetch_row($result)) {

         echo "Product: $name ($id)";

     }

     ...

    

3) mysql_fetch_array() 

     array mysql_fetch_array(resource result_set [,int result_type])

     mysql_fetch_row()的增强版.

     将result_set的每一行获取为一个关联数组或/和数值索引数组.

     默认获取两种数组,result_type可以设置:

     MYSQL_ASSOC:返回关联数组,字段名=>字段值 

     MYSQL_NUM:返回数值索引数组.

     MYSQL_BOTH:获取两种数组.因此每个字段可以按索引偏移引用,也可以按字段名引用.

     举例:

     ...

     $query = "select id, name from product order by name";

     $result = mysql_query($query);

     while($row = mysql_fetch_array($result, MYSQL_BOTH)) { 

         $name = $row['name'];//或者 $name = $row[1];

         $name = $row['id'];//或者 $name = $row[0];

         echo "Product: $name ($id)";

     }

     ... 

    

4) mysql_fetch_assoc()

     array mysql_fetch_assoc(resource result_set)

     相当于 mysql_fetch_array($result, MYSQL_ASSOC)

    

5) mysql_fetch_object()

     object mysql_fetch_object(resource result_set) 

     和mysql_fetch_array()功能一样,不过返回的不是数组,而是一个对象.

     举例:

     ...

     $query = "select id, name from product order by name";

     $result = mysql_query($query); 

     while($row = mysql_fetch_object($result)) {

         $name = $row->name;

         $name = $row->id;

         echo "Product: $name ($id)";

     }

     ...

 

5. 所选择的记录和受影响的记录 

 

1) mysql_num_rows()

     int mysql_num_rows(resource result_set)

     返回result_set中的行数.

     注意,mysql_num_rows()只在确定select语句查询获得的记录数有效,如果要获取insert/update/delete查询影响的记录数,需要使用mysql_affected_rows(). 

 

2) mysql_affected_rows()

     int mysql_affected_rows([resource link_id])

     获取insert/update/delete查询影响的记录数

     注意,不需要输入参数,默认使用最近建立的数据库连接的最近结果.可以使用可选参数link_id来选择数据库连接.

    

6. 获取数据库和表的信息

1) mysql_list_dbs() 

     resource mysql_list_dbs([resource link_id])

     获取服务器上所有数据库名称.

     举例:

     mysql_connect("localhost", "name","pwd"); 

     $dbs = mysql_list_dbs();

     while (list($db) = mysql_fetch_row(dbs)) {

         echo "$db <br>";

     }

     注意,输出结果与使用的用户权限相关.

 

2) mysql_db_name() 

     string mysql_db_name(resource result_set, interger index)

     获取在mysql_list_dbs()返回的result_set中位置为index的数据库名.

    

3) mysql_list_tables()

     resource mysql_list_tables(string database [,resource link_id]) 

     获取database中的所有表名.

 

4) mysql_tablename()

     string mysql_tablename(resource result_set, interger index)

     获取mysql_list_tables()返回的result_set中位置为index的表名

 

在学习PHPCOM 和 .NetWindows)函数的时候,发现了一个通过COM操作SQL SERVER的例子,查找了相关的资料,于是就有了这篇PHP连接ACCESS的文章,相信网上已经很多了,还是贴在这里吧。

 

我的机器环境:WIN2000APACHE2PHP Version 5.1.0RC1

 

<?php 

$conn = new COM("ADODB.Connection") or die("Cannot start ADODB.Connection"); 

$conn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\php5\\netBook.mdb"); 

$rs = $conn->Execute("select * from manage");    // 记录集 

$num_columns = $rs->Fields->Count(); 

echo $num_columns . "<br />\n"; 

for ($i=0; $i < $num_columns; $i++) { 

    $fld[$i] = $rs->Fields($i); 

$rowcount = 0; 

while (!$rs->EOF) { 

     for ($i=0; $i < $num_columns; $i++) 

     { 

        echo htmlspecialchars($fld[$i]->value) . "\t"; 

    } 

     echo "<br />\n"; 

    $rowcount++;            // rowcount 自增 

    $rs->MoveNext(); 

$rs->Close(); //关闭数据集

$conn->Close(); 

?>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值