php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库

时间:2022-01-06 17:25:12

1.使用php的MySQL扩展库操作MySQL数据库:

php有3种方式操作MySQL数据库
(1)mysql扩展库
(2)mysqli扩展库
(3)pdo
 
mysql扩展库与mysql数据库区别 ?
php设计者封装了一些方法去操作mysql数据库,这些方法集中起来形成了mysql扩展库。mysql数据库存放数据。
 
 
2.使用php的MySQL扩展库操作MySQL数据库案例:
(1)环境搭建:启用MySQL数据库,在php.ini文件中配置使用MySQL数据库,
          extension = php_mysql.dll
可以通过:在http://localhost/test.php,这里的test.php文件之中写到:
<?php
    phpinfo() ;//输出php可以使用的扩展库,验证是否开启了mysql服务
?>
 
(2 )创建一张用户表,供我们使用:
create table user1(
       id int  primary  key  auto_increment ,
       name varchar(32) not null ,
       passwd  varchar(64) not null ,
       email   varchar(128) not null ,    
      age   tinyint  unsigned not null
) ;
 
预先加入数据:
insert into user1(name,passwd, email,age) values ('zs', md5('123456'), 'zs@sohu.com' , 30) ;
insert into user1(name,passwd, email,age) values ('ls', md5('123456'), 'ls@sohu.com' , 40) ;
insert into user1(name,passwd, email,age) values ('ww', md5('123456'), 'ww@sohu.com' , 50) ;
insert into user1(name,passwd, email,age) values ('评委', md5('123456'), 'pingwei@sohu.com' , 50) ;
这里插入中文会报错:需要进行下面设置:
show variables like '%char%';
set character_set_client = gbk;
set character_set_client = gbk;
php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库
(2)编写php程序,完成对用户表的显示:
步骤:
-->1:获取连接:获取mysql扩展库和mysql数据库的连接
-->2:选择数据库
-->3:设置编码(建议有)
-->4:发送指令sql
-->5:接收返回结果,并处理。(显示)
-->6:释放资源,关闭连接
<?php
header("Content-Type: text/html; charset=utf-8");
//mysql扩展库操作mysql数据库步骤如下:
//1.获取连接:获取mysql扩展库和mysql数据库的连接
$conn = mysql_connect("127.0.0.1","root","root");//参数1:主机名,参数2:用户名,参数3:密码;
if(!$conn) {
die("连接失败".mysql_error());
}
//2.选择数据库
mysql_select_db("test"); //3.设置编码(建议有)
//mysql_ //4.发送指令sql(ddl 数据定义语句),dml (数据操作语句 update insert delete),dql(数据查询语言 select) ,dtl (数据事务语言 rollback commit...)
$sql = "select *from user1";
//函数
//$res表示结果集,你可以简单的理解就是一张表
$res = mysql_query($sql,$conn);
//var_dump($res);
//5.接收返回结果,并处理。(显示)
//mysql_fetch_row会依次取出$res结果集的下一行数据,赋值给$row
//$row就是一个数组
while($row = mysql_fetch_row($res)){
//第一种:echo "<br/> $row[0]--$row[1]--$row[2]";
//第二种:echo "<br/>";
// var_dump($row);
//第三种:
foreach($row as $key=> $val) {
echo "--$val";
}
echo "<br/>";
}
//6.释放资源,关闭连接
mysql_free_result($res);
mysql_close($conn); ?>

上面代码提到了三种显示数据的方法结果如下:

    第一种:echo "<br/> $row[0]--$row[1]--$row[2]";

php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库

    第二种:echo "<br/>"; var_dump($row);

php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库

  第三种:foreach($row as $key=> $val) {
                          echo "--$val";
               }
               echo "<br/>";
php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库

mysql_free_result($res); //释放占用的计算机资源,否则计算机会越来越卡!

 mysql_close($conn);//释放连接,如果没有这一句,我们反复刷新页面访问.../mysql/mysqlDemo1.php,会出现很多TIME_WAIT的连接请求:如下

反复刷新页面之后,我们输入一下cmd命令:

php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库

查看结果:

php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库

细节:

  1.使用完$res 结果集后,一定要及时的释放资源

  2.mysql_close()如果没有的话,系统也会自动地关闭

  3.从$res获取行数据的时候,处理mysql_fetch_row($res),还有3个方法分别是如下:

     mysql_fetch_assoc($res),返回一个关联数组

     mysql_fetch_array($res),mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。

     mysql_fetch_object($res),mysql_fetch_object() 函数从结果集(记录集)中取得一行作为对象。若成功的话,本函数从 mysql_query() 获得一行,并返回一个对象。如果失败或没有更多的行,则返回 false。