PHP链接MySQL的常用扩展函数,php链接mysql_PHP教程

php中文网
发布: 2016-07-13 10:16:14
原创
940人浏览过

PHP链接MySQL的常用扩展函数,php链接mysql

一、php连接数据库及基本操作

MySQL采用的是'客户机/服务器'架构。使用PHP安装的MySQL扩展函数,和直接使用客户端软件区访问MySQL数据库服务器,原理一样,都需要向MySQL管理系统发送SQL命令,然后将结果返回给用户。

在PHP中,SQL分为两类(查看SQL语句分类):一是有返回结果集的DQL语句,如select/desc 表名,执行完毕之后,需要PHP处理结果集;二是没有结果集的,如DML、DDL等,但是DML语句执行成功后对数据表的记录有影响。

<&#63;php<br />//连接数据库,常用参数是主机名、用户名和密码<br />$link = mysql_connect('localhost','root','123456');<br />//判断是否连接成功<br />if(!$link)<br />{<br />die('连接失败'.mysql.error()); //连接成功返回资源标识符,失败返回false,mysql_error显示错误信息<br />}<br /><br />//选择数据库,mysql_error()只在调试中使用,再部署项目时就不要了,不然会泄露数据库信息<br />mysql_select_db('test') or die('选择数据库失败'.mysql_error());<br /><br />//mysql_query()可以设置字符集和执行SQL语句<br />mysql_query('set names utf-8');<br />$sql = 'insert into test(id,name) values("1","dwqs")';<br />$result = mysql_query($sql);  //执行sql返回结果集<br /><br />//处理结果集,insert属于DML,会对表的记录有影响<br />if($result && mysql_affected_rows() > 0)<br />{<br />//mysql_insert_id()返回最后一条新纪录的auto_increment值<br />echo '插入数据成功'.mysql_insert_id().'<br/>';<br />}<br />else<br />{<br />echo '插入数据失败,错误号:'.mysql_errno().'错误信息:'.mysql_error().'<br/>';<br />}<br /><br />//关闭连接<br />mysql_close($link);<br />&#63;>
登录后复制

二、PHP处理select查询结果集

在PHP中执行select语句返回一个结果集,可以用于对各个字段的处理

立即学习PHP免费学习笔记(深入)”;

$result = mysql_query('select * from test');<br />//获取记录行的个数<br />$rows = mysql_num_rows($result);<br />//获取字段个数,即数据列<br />$cols = mysql_num_fields($result);
登录后复制

如果需要访问结果集中的数据,可以使用下列四个函数中的一个(均以结果集资源符作为参数,并自动返回下一条记录,在表末尾时返回false)

1、mysql_fetch_row():该函数将一条结果记录返回并以一个普通的索引数据保存

2、mysql_fetch_assoc():从结果集中取得一行作为关联数据保存

链企AI
链企AI

专业的AI商业搜索和标讯服务平台,AI采集招投标信息,让您免费查看全网商业资讯,为您的商机之旅助力!

链企AI 99
查看详情 链企AI

3、mysql_fetch_array():从结果集中取得一行作为关联数组,或数字数组,或二者兼有。可以使用MYSQL_ASSOC(关联数组形式)、MYSQL_NUM(索引数组形式)和MYSQL_BOTH作为第二个参数,指定返回的数据形态。

4、mysql_fetch_object():从结果集中取得一行作为对象,各个字段以对象方式访问。

建议:没有特殊要求,不要使用mysql_fetch_array(),可以使用mysql_fetch_row()或者mysql_fetch_assoc()实现同样的功能,且效率高。

另外也有三个与结果集相关的常用函数

5、mysql_data_seek(int $num):移动内部结果的指针,$num是想要设定的新的结果集指针的行数。

6、mysql_fetch_lengths(resource <font face="NSimsun">$result</font>):取得结果集中每个输出的长度

7、mysql_result(resource <font face="NSimsun">$result</font> , int <font face="NSimsun">$row[,mixed $field]</font>):返回 MySQL 结果集中一个单元的内容。字段参数可以是字段的偏移量或者字段名,或者是字段表点字段名(tablename.fieldname)。如果给列起了别名('select foo as bar from…'),则用别名替代列名。调用 mysql_result()不能和其它处理结果集的函数混合调用。

php对于连接mysql函数的应用

mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有。
返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。

mysql_fetch_array(data,array_type)
参数data:可选。规定规定要使用的数据指针。该数据指针是 mysql_query() 函数产生的结果。
参数:array_type可选。规定返回哪种结果。该参数可选值:MYSQL_ASSOC - 关联数组
MYSQL_NUM - 数字数组
MYSQL_BOTH - 默认。同时产生关联和数字数组 。
注释:mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。

例子:
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db("test_db",$con);
$sql = "SELECT * from Person WHERE Lastname='Adams'";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_array($result));

mysql_close($con);
?>
输出类似:
Array
(
[0] => Adams
[LastName] => Adams
[1] => John
[FirstName] => John
[2] => London
[City] => London
)
///////////////////////
mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。
返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。
mysql_fetch_assoc(data)
参数:data(必需)要使用的数据指针。该数据指针是从 mysql_query() 返回的结果。

注释:mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二个可选参数 MYSQL_ASSOC 完全相同。它仅仅返回关联数组。这也是 mysql_fetch_array() 初始的工作方式。
提示:如果在关联索引之外还需要数字索引,用 mysql_fetch_array()。
注意:本函数返回的字段名是区分大小写的。

例子如下:
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
{
die('Could not connect: ' . mysq......余下全文>>
 

对于php连接mysql函数

由于没有看到完整的代码,仅就看到的代码试作解答如下:

1. Notice: Undefined variable: db in C:\xampp\htdocs\shop\files\mysql.php on line 5
警告:未字义的变量db(第5行不太清楚是哪行代码)。

这个错误提示,从已知的代码来看,其原因应该是你在函数体里引用了一个函数体外定义的变量(db),从代码看其实就是没有注意到, 对于变量 作用域范围(全局、局部)错误应用的问题。

简单的说,函数 select_mycx 里找不到 db。

解决办法:

(1). 用参数传递进去。

function select_mycx($table,$by,$select_str,$number,$db)
{
.....
}

(2). 在参数体里定义全局变量引用:

function select_mycx($table,$by,$select_str,$number)
{
global $db;

....
}

2.Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\shop\files\mysql.php on line 5

这个错误实际上是上面的错误引起的,因为$db没有正确引入,所以再 query 当然不能正确执行。
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/898292.htmlTechArticlePHP链接MySQL的常用扩展函数,php链接mysql 一、php连接数据库及基本操作 MySQL采用的是'客户机/服务器'架构。使用PHP安装的MySQL扩展函数,和直...
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号