create database worddb
create table words(
id int primary key auto_increment,
enword varchar(32) not null,
chword varchar(256) not null
);
insert into words(enword,chword) values ('boy','男孩')
insert into words(enword,chword) values ('school','学校')
因为是练习,所以就插入了两条数据。接下来就是编写SQL工具类,代码如下:
conn=mysql_connect($this->host,$this->user,$this->password);
if (!$this->conn){
die("连接数据库失败!".mysql_error());
}
mysql_select_db($this->db,$this->conn);
mysql_query("set names utf8");
}
//完成select
function execute_dql($sql){
$res=mysql_query($sql) or die(mysql_error());
return $res;
}
//完成insert,update,delete
function execute_dml($sql){
$b=mysql_query($sql,$this->conn);
if (!$b){
return 0;
}else{
//因为有些情况执行成功,但没有行数影响,所以在判断一下。
if (mysql_affected_rows($this->conn)>0){
return 1;
}else{
return 2;
}
}
}
}
?>
create database day1;
use day1;
create table user1 (
id int(6) unsigned auto_increment primary key,
name varchar(20) not null,
password varchar(256) not null,
email varchar(80) not null,
age int(128) not null
);
INSERT INTO user1(name,password,email,age) VALUES('Lucia','13568','12345@.com',30);
mysqli=new mysqli($this->host,$this->user,$this->pass,$this->db);
if ($this->mysqli->connect_error){
echo "连接失败";
}
$this->mysqli->query("set names utf8");
}
//进行select
public function execute_dql($sql){
$res=$this->mysqli->query($sql) or die($this->mysqli->error);
return $res;
}
//进行update,insert,delete
public function execute_dml($sql){
$res=$this->mysqli->query($sql) or die($this->mysqli->error);
if (!$res){
return 0;
}else{
if ($this->mysqli->affected_rows>0){
return 1;//成功
}else{
return 2;//没有行数收影响
}
}
}
}
?>
下面就是前端页面了,这里我用表单向后端提交数据,代码如下:
效果如下图:
然后就是后端的逻辑设计了,代码如下:
execute_dml($sql);
if ($res==1){
echo "添加成功";
}else{
if ($res==0){
echo '添加失败';
}else{
echo "行数没有变化";
}
}
?>
create database test;
use test;
create table users(
id int(8) unsigned auto_increment primary key,
name varchar(128) not null,
password varchar(256) not null);
insert into users(name,password) values('test','13579');
下面就是批量执行dml操作的代码:
connect_error){
echo "连接失败";
}
$sqli="insert into users(name,password) values ('小利',md5('13568'));";
//批量执行dml操作时,注意上一级句的;和下一句的.两个符号
$sqli.="insert into users(name,password) values ('小利',md5('13568'));";
$sqli.="insert into users(name,password) values ('小利和小峰',md5('13568'))";
$b=$mysqli->multi_query($sqli);
if (!$b){
echo "插入失败";
}else{
echo "ok!";
}
$mysqli->close();
?>
show engines
我们发现,只有InnoDB是支持事务的,所以先查看一下现在得数据库引擎:
发现是MyISAM,我们将它修改为InnoDB,打开配置文件my.ini,将“default-storage-engine=MYISAM”改为你想设定的,然后重启即可。修改成功后,然后下一步就是代码实现。