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 相关文章推荐
PHP+FLASH实现上传文件进度条相关文件 下载
Jul 21 PHP
php 无法载入mysql扩展
Mar 12 PHP
php中对2个数组相加的函数
Jun 24 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
详解php用static方法的原因
Sep 12 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 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
PHP7 字符串处理机制修改
2021/03/09 PHP
javascript实现的网页局布刷新效果
2008/12/01 Javascript
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
JS字符串函数扩展代码
2011/09/13 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
JavaScript DOM进阶方法
2015/04/13 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
微信小程序发送短信验证码完整实例
2019/01/07 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
Python中的super用法详解
2015/05/28 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
浅析python的Lambda表达式
2019/02/27 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
绝对经典成功的大学生推荐信
2013/11/08 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
关于颐和园的导游词
2015/01/30 职场文书
工程款申请报告
2015/05/15 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis