- 环境搭建
启用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、查询数据库
<?php
//连接数据库
$conn=mysql_connect('localhost','root','root');
//如果连接失败,报错
if(!$conn){
die("连接数据库失败".mysql_error());
}
//选择数据库
mysql_select_db('test');
//设置操作编码
mysql_query('set names utf8',$conn);
//sql语句,实现查询操作
$sql="select * from user1";
//执行sql语句
$res=mysql_query($sql,$conn);
//对结果处理
while($row=mysql_fetch_row($res)){
echo $row[0]."--".$row[1]."--".$row[2]."--".$row[3]."<br/>";
//var_dump($row);
}
//释放资源,关闭数据库
mysql_free_result($res);
mysql_close($conn);
?>
结果如下:
问题:查询不到第一行?
3、下面介绍四个结果处理函数的区别
mysql_fetch_row($res) 返回索引数组,如下:
mysql_fetch_assoc($res) 返回关联数组,如下:
mysql_fetch_array($res) 返回索引数组+关联数组,如下:
mysql_fetch_object($res) 返回对象,如下:
- 增删改数据库
<?php
//对数据库增删改操作,dml语句(insert,delete,upgate)
//连接数据库
$conn=mysql_connect('localhost','root','root');
//如果连接失败,报错
if(!$conn){
die("连接数据库失败".mysql_error());
}
//选择数据库
mysql_select_db('test');
//设置字符格式
mysql_query('set names utf8',$conn);
//sql语句,实现增删改操作
$sql="insert into user1 (name,password,age,birthday) values('skl',md5('skl'),25,'1991-04-05')";
//$sql="delete from user1 where name='skl'";
//$sql="update user1 set age=18 where name='skl'";
//执行sql语句
$res=mysql_query($sql,$conn);
//dml语句执行后返回结果为布尔型
if(!$res){
echo "操作失败".mysql_error();
}
if(mysql_affected_rows($conn)>0){
echo "操作成功";
}else{
echo "没有影响到行数";
}
//关闭数据库
mysql_close($conn);
?>
- 把对数据库的操作封装成类
mysqlTool.class.php
<?php
class MysqlTool{
private $host="localhost";
private $userName="root";
private $pwd="root";
private $dbName="test";
private $conn;
//连接数据库函数,构造函数(与类同名),实例化后自动调用
public function MysqlTool(){
$this->conn=mysql_connect($this->host,$this->userName,$this->pwd);
if(!$this->conn){
die("连接数据库失败".mysql_error());
}
mysql_select_db($this->dbName,$this->conn);
mysql_query("set names utf8",$this->conn);
}
//dql语句,完成select
public function executeDql($sql){
$res=mysql_query($sql,$this->conn) or die("操作失败".mysql_error());
return $res;
}
//dml语句,完成insert,delete,update
public function executeDml($sql){
$res=mysql_query($sql,$this->conn);
if(!$res){
return 0;//0表示操作失败
}else{
if(mysql_affected_rows($this->conn)>0){
return 1;//1表示操作成功
}else{
return 2;//2表示没有行数影响
}
}
}
//关闭数据库
public function mysqlClo(){
mysql_close($this->conn);
}
}
?>
实例化类完成查询数据库操作:
<?php
//引入类文件
require_once "mysqlTool.class.php";
//对类实例化
$mysqlTool=new MysqlTool();
//查询数据库
$sql="select * from user1";
$res=$mysqlTool->executeDql($sql);
while($row=mysql_fetch_row($res)){
echo $row[0]."--".$row[1]."--".$row[2]."--".$row[3]."<br/>";
}
mysql_free_result($res);
$mysqlTool->mysqlClo();
?>
实例化类完成增删改数据库操作:
<?php
//引入类文件
require_once "mysqlTool.class.php";
//对类实例化
$mysqlTool=new MysqlTool();
//增删改数据库
//$sql="insert into user1 (name,password,age,birthday) values ('skl',md5('skl'),25,'1991-04-05')";
//$sql="delete from user1 where name='skl'";
$sql="update user1 set age=18 where name='skl'";
$res=$mysqlTool->executeDml($sql);
if($res==0){
echo "操作失败";
}else if($res==1){
echo "操作成功";
}else if($res==2){
echo "没有行数影响";
}
$mysqlTool->mysqlClo();
?>