环境搭建
启用mysql扩展库,在php.ini文件中去配置mysql扩展库
extension=php_mysql.dll
查询数据库
1、建库建表
//建库test
create database test;
//用库test
use test;
//建表user1
create table user1(
id int primary key auto_increment,
name varchar(32) not null,
password varchar(64) not null,
age tinyint unsigned not null,
birthday date not null
);
//增加数据
insert into user1 (name,password,age,birthday) values ('lm',md5('lm'),25,'1991-01-02');
insert into user1 (name,password,age,birthday) values ('lxz',md5('lxz'),25,'1991-02-03');
insert into user1 (name,password,age,birthday) values ('wy',md5('wy'),25,'1991-03-04');
2、查询数据库
1 <?php2 //连接数据库
3 $conn=mysql_connect('localhost','root','root');4 //如果连接失败,报错
5 if(!$conn){6 die("连接数据库失败".mysql_error());7 }8 //选择数据库
9 mysql_select_db('test');10 //设置操作编码
11 mysql_query('set names utf8',$conn);12 //sql语句,实现查询操作
13 $sql="select * from user1";14 //执行sql语句
15 $res=mysql_query($sql,$conn);16 //对结果处理
17 while($row=mysql_fetch_row($res)){18 echo $row[0]."--".$row[1]."--".$row[2]."--".$row[3]."
";19 //var_dump($row);
20 }21 //释放资源,关闭数据库
22 mysql_free_result($res);23 mysql_close($conn);24 ?>
结果如下:
问题:查询不到第一行?
3、下面介绍四个结果处理函数的区别
mysql_fetch_row($res) 返回索引数组,如下:
mysql_fetch_assoc($res) 返回关联数组,如下:
mysql_fetch_array($res) 返回索引数组+关联数组,如下:
mysql_fetch_object($res) 返回对象,如下:
增删改数据库
1 <?php2 //对数据库增删改操作,dml语句(insert,delete,upgate)3 //连接数据库
4 $conn=mysql_connect('localhost','root','root');5 //如果连接失败,报错
6 if(!$conn){7 die("连接数据库失败".mysql_error());8 }9 //选择数据库
10 mysql_select_db('test');11 //设置字符格式
12 mysql_query('set names utf8',$conn);13 //sql语句,实现增删改操作
14 $sql="insert into user1 (name,password,age,birthday) values('skl',md5('skl'),25,'1991-04-05')";15 //$sql="delete from user1 where name='skl'";16 //$sql="update user1 set age=18 where name='skl'";17 //执行sql语句
18 $res=mysql_query($sql,$conn);19 //dml语句执行后返回结果为布尔型
20 if(!$res){21 echo "操作失败".mysql_error();22 }23 if(mysql_affected_rows($conn)>0){24 echo "操作成功";25 }else{26 echo "没有影响到行数";27 }28 //关闭数据库
29 mysql_close($conn);30 ?>
把对数据库的操作封装成类
mysqlTool.class.php
1 <?php2 classMysqlTool{3 private $host="localhost";4 private $userName="root";5 private $pwd="root";6 private $dbName="test";7 private $conn;8 //连接数据库函数,构造函数(与类同名),实例化后自动调用
9 public functionMysqlTool(){10 $this->conn=mysql_connect($this->host,$this->userName,$this->pwd);11 if(!$this->conn){12 die("连接数据库失败".mysql_error());13 }14 mysql_select_db($this->dbName,$this->conn);15 mysql_query("set names utf8",$this->conn);16 }17 //dql语句,完成select
18 public function executeDql($sql){19 $res=mysql_query($sql,$this->conn) or die("操作失败".mysql_error());20 return $res;21 }22 //dml语句,完成insert,delete,update
23 public function executeDml($sql){24 $res=mysql_query($sql,$this->conn);25 if(!$res){26 return 0;//0表示操作失败
27 }else{28 if(mysql_affected_rows($this->conn)>0){29 return 1;//1表示操作成功
30 }else{31 return 2;//2表示没有行数影响
32 }33 }34 }35 //关闭数据库
36 public functionmysqlClo(){37 mysql_close($this->conn);38 }39 }40 ?>
实例化类完成查询数据库操作:
1 <?php2 //引入类文件
3 require_once "mysqlTool.class.php";4 //对类实例化
5 $mysqlTool=newMysqlTool();6 //查询数据库
7 $sql="select * from user1";8 $res=$mysqlTool->executeDql($sql);9 while($row=mysql_fetch_row($res)){10 echo $row[0]."--".$row[1]."--".$row[2]."--".$row[3]."
";11 }12 mysql_free_result($res);13 $mysqlTool->mysqlClo();14 ?>
实例化类完成增删改数据库操作:
1 <?php2 //引入类文件
3 require_once "mysqlTool.class.php";4 //对类实例化
5 $mysqlTool=newMysqlTool();6 //增删改数据库7 //$sql="insert into user1 (name,password,age,birthday) values ('skl',md5('skl'),25,'1991-04-05')";8 //$sql="delete from user1 where name='skl'";
9 $sql="update user1 set age=18 where name='skl'";10 $res=$mysqlTool->executeDml($sql);11 if($res==0){12 echo "操作失败";13 }else if($res==1){14 echo "操作成功";15 }else if($res==2){16 echo "没有行数影响";17 }18 $mysqlTool->mysqlClo();19 ?>