用php连接数据库
来源:互联网 发布:雪人翻译软件下载 编辑:程序博客网 时间:2024/05/17 08:55
PHP操作mysql服务器
php作为mysql服务器的客户端!
1:连接认证
2:发送sql
执行sql,生成结果(mysql-server)
3:处理结果
关闭连接
用php连接数据库是将php作为mysql服务器的客户端。
二者的关系如下:
所以php连接数据库包含下面三个操作。
1:连接认证
首先连接上mysql数据库需要4个参数
连接的参数:
Localhost
Sort
认证的参数:
Username
Password
代码如下:
$locallhost = "127.0.0.1";$username = "root";$password = "1234567";$port = "3306";
其次获得连接资源
使用函数 mysql_connect(); 打开非持久的 MySQL 连接。
用法:mysql_connect("$locallhost:$port",$username,$password)
其中前两个参数是为了连接服务器,后两个参数是为了认证服务器。
代码如下:
$locallhost = "127.0.0.1";$username = "root";$password = "1234567";$port = "3306";$link = mysql_connect("$locallhost:$port", $username, $password);if (!$link = mysql_connect("$locallhost:$port", $username, $password)) { die("This link is Error");} var_dump($link);
$link得到连接资源,资源值是布尔型。成功返回资源,失败返回false.
运行结果如下:
2:php向mysql服务器发送sql
使用mysql_query()函数
mysql_query(sql, 连接资源);(Sql即为你要发送的sql语句)
失败返回false,成功返回资源或者true!
检错函数:
mysql_error($link); 查询错误信息。
mysql_errno($link) 查询错误代码
代码如下:
//2:向mysql服务器发送sql语句$sql = "show databases";$result = mysql_query($sql, $link);if (!$result) { echo 'sql执行失败:', $sql, '<br>'; echo '错误信息:', mysql_error($link), '<br>'; echo '错误代码:', mysql_errno($link), '<br>'; die;}// var_dump($result);
错误结果:
3:处理结果
处理返回数据
执行成功,返回数据可以是资源也可以是true。执行失败,返回的一定是false!
判断返回数据是资源还是true的依据是:执行的sql语句是否返回数据!
见下表:
返回资源-> sql返回数据
返回true-> sql 返回true
处理返回资源:
Var_dump($result)
如下图结果:
称之为结果集(result set)类型资源!
结果集:结果的集合!
将数据从结果集中取出来,称之为 fetch!
使用函数:
mysql_fetch_assoc|row|array。功能完全一致,只是返回的数据格式不同!
在结果集中,取得一条记录。结果集内也存在结果集记录指针的概念!
fetch一次,只能取得当前记录,但是可以向后移动记录指针!配合上循环结构可以将所有的记录从结果集中取出!
如下图:
while ($rows = mysql_fetch_assoc($result2)) { var_dump($rows, '<br>');}页面结果:
特别注意:
任何有结果的sql操作,返回的都是结果集!
结果集,就是一个二维表的结构!是一行行的记录组成!
即使,结果集中只有一条记录
甚至,我们只需要返回一条数据!
处理从数据库取出的数据乱码
//防止乱码mysql_query("SET NAMES 'utf8'");
如下例子:
//返回结果集$sql1 = "select * from test_database.student";//防止乱码mysql_query("SET NAMES 'utf8'");$result1 = mysql_query($sql1, $link);while ($rows = mysql_fetch_assoc($result1)) { var_dump($rows, '<br>');}结果如下:
就算只有一条记录,结果也算是一个结果集而不是一个数字。
$sql2="select COUNT(stuname) from test_database.student";mysql_query("SET NAMES 'utf8'");$result2 = mysql_query($sql2, $link);if(!$result2){ echo 'sql执行错误',$sql2,'<br>'; echo '错误信息'.mysql_error($link); echo '错误代码'.mysql_errno($link);}while ($rows = mysql_fetch_assoc($result2)) { var_dump($rows, '<br>');}
结果:
释放资源
关闭连接资源:mysql_close($link)
关闭结果集资源:mysql_free_result($result2)
//1:关闭连接资源 mysql_close($link);//2:关闭结果集资源 mysql_free_result($result2);
- 用PHP连接数据库
- 用php连接数据库
- PHP用mysqli来连接数据库
- php连接数据库
- PHP连接ACCESS数据库
- PHP连接ACCESS数据库
- PHP连接MYSQL数据库
- php连接数据库类
- php 连接access数据库
- php连接mysql数据库
- php连接mysql数据库
- PHP连接数据库专题
- PHP 连接MySQL 数据库
- php连接mysql数据库
- PHP连接MYSQL数据库
- php连接mysql数据库
- php连接远程数据库
- PHP连接access数据库
- Java中为什么不推荐使用stop()和suspend()方法
- CPP_Basic_Summary_0.4
- 用qt5.3.2打开ros(机器人操作系統)的界面(CmakeList.txt)
- Win7旗舰版安装tensorflow
- CCCC-GPLT L1-036. A乘以B 团体程序设计天梯赛
- 用php连接数据库
- 计161_Problem : 字符串操作二(串)
- MongoDB变量如何传参给查询条件
- C#笔记整理(十)
- java中内存分配深入分析
- spring定时器时间表达式
- Week Training: 515 Find Largest Value in Each Tree Row
- jquery----手风琴
- (ros/navigation/gmapping)导航/建地图