PHP操作mysql函数详解,mysql和php交互函数


Posted in PHP onMay 19, 2011

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/updata/delete查询影响的记录数,需要使用mysql_affected_rows().
2) mysql_affected_rows()
int mysql_affected_rows([resource link_id])
获取insert/updata/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的表名.
在学习PHP的COM 和 .Net(Windows)函数的时候,发现了一个通过COM操作SQL SERVER的例子,查找了相关的资料,于是就有了这篇PHP连接ACCESS的文章,相信网上已经很多了,还是贴在这里吧。
我的机器环境:WIN2000,APACHE2,PHP 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(); 
?>
PHP 相关文章推荐
火车头discuz6.1 完美采集的php接口文件
Sep 13 PHP
php echo 输出字符串函数详解
May 13 PHP
PHP header函数分析详解
Aug 06 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
Oct 08 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
php_pdo 预处理语句详解
Nov 21 PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 PHP
php服务器的系统详解
Oct 12 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 #PHP
php中全局变量global的使用演示代码
May 18 #PHP
一个PHP分页类的代码
May 18 #PHP
PHP sprintf()函数用例解析
May 18 #PHP
PHP 命令行参数详解及应用
May 18 #PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 #PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 #PHP
You might like
PHP面向对象程序设计实例分析
2016/01/26 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
JavaScript delete 属性的使用
2009/10/08 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
python实现文法左递归的消除方法
2020/05/22 Python
为什么python比较流行
2020/06/19 Python
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
教育实习生的自我评价分享
2013/11/21 职场文书
财产公证书
2014/04/10 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
校本研修个人总结
2015/02/28 职场文书
浅谈redis整数集为什么不能降级
2021/07/25 Redis
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers