操作数据库前的准备
声明:以下语句适用于PHP5以上,若是PHP5以下,请使用mysql_XXX()函数。
环境:DW,phpstudy,phpmyadmin
安装phpmyadmin
启动Apache,FTP,Mysql
关于数据库闪关情况的处理
如果在开启mysql时,出现闪关的情况,则先检查mysql是否开了相应mysql扩展,而后再检查mysql使用的端口是否被占用,如果被占用则结束改端口的进程。 操作如下图:
点击php扩展,然后查看php_pdo_mysql,mysqli,php_gd2是否开启,没有开启单击开启。
在确认开启了php扩展之后,仍然出现mysql闪关情况,则需要检查mysql的端口是否被占用。
然后再重新启动mysql。
#进入登录phpmyadmin
登录成功之后显示的界面:
可以对数据库进行操作
使用php代码操作数据库
1、连接数据库
(1)定义一个连接变量:
c
o
n
n
=
m
y
s
q
l
i
c
o
n
n
e
c
t
(
"
l
o
c
a
l
h
o
s
t
"
,
"
r
o
o
t
"
,
"
r
o
o
t
"
)
;
/
/
m
y
s
q
l
i
c
o
n
n
e
c
t
(
"
服
务
器
名
"
,
"
用
户
名
"
,
"
用
户
密
码
"
)
(
2
)
判
断
是
否
连
接
上
数
据
库
:
如
果
连
接
不
上
,
就
输
出
错
误
信
息
i
f
(
!
conn = mysqli_connect("localhost","root","root");//mysqli_connect("服务器名","用户名","用户密码") (2)判断是否连接上数据库:如果连接不上,就输出错误信息 if(!
conn=mysqliconnect("localhost","root","root");//mysqliconnect("服务器名","用户名","用户密码")(2)判断是否连接上数据库:如果连接不上,就输出错误信息if(!conn){
die(“不能连接数据库”.mysqli_error());
}
2、操作数据库:在对数据库进行操作后,需要刷新数据库,所做操作方能生效
(1)新建数据库:
if(!mysqli_query(
c
o
n
n
,
"
c
r
e
a
t
e
d
a
t
a
b
a
s
e
u
s
e
r
"
)
d
i
e
(
"
不
能
新
建
数
据
库
"
.
m
y
s
q
l
i
c
o
n
n
e
c
t
e
r
r
o
r
(
)
)
;
/
/
m
y
s
q
l
i
q
u
e
r
y
(
连
接
变
量
,
"
数
据
库
语
句
"
)
(
2
)
新
建
数
据
库
表
:
选
择
数
据
库
:
m
y
s
q
l
i
s
e
l
e
c
t
d
b
(
conn,"create database user"){ die("不能新建数据库".mysqli_connect_error()); }//mysqli_query(连接变量,"数据库语句") (2)新建数据库表: 选择数据库: mysqli_select_db(
conn,"createdatabaseuser")die("不能新建数据库".mysqliconnecterror());//mysqliquery(连接变量,"数据库语句")(2)新建数据库表:选择数据库:mysqliselectdb(conn,“jianxia”);//mysqli_select_db(连接变量,“数据库名”)
第二种学则数据库的方法:
mysqli_query($conn,‘use jianxia’)//mysqli_query(连接变量,"数据库语句”)
//连接数据库和选择数据库可以使用一条语句搞定
$mysqli = new mysqli(“localhost”,“root”,“root”,“数据库名”);
编写sql语句:
$sql = “create table persons(
personID int not null auto_increment,//auto_increment:自动递增
primary key (personID),
firstname varchar(15),
lastname varchar(15),
age int)”;
(3)插入一条数据:
s
q
l
I
n
s
e
r
t
=
"
i
n
s
e
r
t
i
n
t
o
p
e
r
s
o
n
s
(
f
i
r
s
t
n
a
m
e
,
l
a
s
t
n
a
m
e
,
a
g
e
)
v
a
l
u
e
s
(
′
h
′
,
′
h
a
h
′
,
4
)
"
;
m
y
s
q
l
i
q
u
e
r
y
(
sqlInsert = "insert into persons (firstname,lastname,age) values('h','hah',4)"; mysqli_query(
sqlInsert="insertintopersons(firstname,lastname,age)values(′h′,′hah′,4)";mysqliquery(conn,$sqlInsert);
(4)删除一条数据:
s
q
l
d
e
l
e
t
e
=
"
d
e
l
e
t
e
f
r
o
m
p
e
r
s
o
n
s
w
h
e
r
e
p
e
r
s
o
n
I
D
=
2
"
;
m
y
s
q
l
i
q
u
e
r
y
(
sql_delete = "delete from persons where personID =2"; mysqli_query(
sqldelete="deletefrompersonswherepersonID=2";mysqliquery(mysqli,$sql_delete);
(5)修改一条数据:
语法:update 表名 set 字段名=新字段值 where 字段名=字段值;
s
q
l
u
p
=
"
u
p
d
a
t
e
p
e
r
s
o
n
s
s
e
t
f
i
r
s
t
n
a
m
e
=
′
h
e
h
e
h
e
h
h
e
′
w
h
e
r
e
p
e
r
s
o
n
I
D
=
2
"
;
m
y
s
q
l
i
q
u
e
r
y
(
sql_up = "update persons set firstname = 'hehehehhe' where personID = 2"; mysqli_query(
sqlup="updatepersonssetfirstname=′hehehehhe′wherepersonID=2";mysqliquery(conn,$sqlUpdate);
3、查询数据库数据显示在网页上:
$query = "select * from persons";
$result = mysqli_query($mysqli,$query);
while($row = mysqli_fetch_array($result)){
echo $row["firstname"].$row["lastname"].$row["age"];//以数组的形式输出
}
4、查询条件:
where语句:
$query = "select * from persons where personID=1";
$result = mysqli_query($mysqli,$query);
while($row = mysqli_fetch_array($result)){
echo $row["firstname"].$row["lastname"].$row["age"];
}
order by 语句:数据排序
$paixu = "select * from persons order by age";
$result = mysqli_query($conn,$paixu);
while($row = mysqli_fetch_array($result)){
echo $row["firstname"]." ".$row["lastname"]." ".$row["age"].'<br>';
}
5、and 和 or:和,或者
6、设置字符集:
mysqli_query($conn,'set names utf8');
7、关闭数据库连接
mysqli_close($conn);
补充php5以上的版本舍弃了mysql_XXX()函数,选择使用mysqli_XXX()函数,两者功能一致,区别是参数的位置相反。