博客列表 >数据库的增删改查基本操作--2019年7月28日13点57分

数据库的增删改查基本操作--2019年7月28日13点57分

辰晨的博客
辰晨的博客原创
2019年07月28日 23:28:16771浏览

在线地址:http://www.pursuer.top/db/insert.php,乱码待处理

一、数据库的链接

1.创建db.php文件放于inc文件夹下,将数据库的基本参数以数组的方式储存,并返回

<?php
// 配置数据库基本参数并返回
return [
	'type' => 'mysql',
	'host' => 'localhost',
	'dbname' => 'student',
	'username' => 'root',
	'password' => 'root'
];

运行实例 »

点击 "运行实例" 按钮查看在线实例

2.创建connect.php文件放于inc文件夹下,将db.php文件引入进来,将connect.php文件制作成链接数据库的模板文件用于整个项目

<?php
	
// 创建数据库连接模板

// 1.引入数据库参数
$db = require 'db.php';
// 2.配置dsn数据源
$dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}";
// 3.连接数据库
try {
	$pdo = new PDO($dsn,$db['username'],$db['password']);
} catch (PDOException $e) {
	die('Connection Failed:' . $e->getMessage());
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.创建数据库文件student.sql

-- Adminer 4.7.2 MySQL dump

SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';

DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade` (
  `stu_id` tinyint(3) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `stu_name` varchar(20) NOT NULL COMMENT '学生姓名',
  `stu_course` varchar(10) NOT NULL COMMENT '课程',
  `stu_grade` int(3) NOT NULL COMMENT '成绩',
  PRIMARY KEY (`stu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `grade` (`stu_id`, `stu_name`, `stu_course`, `stu_grade`) VALUES
(1,	'诸葛亮',	'php',	99);

-- 2019-07-28 03:43:25

运行实例 »

点击 "运行实例" 按钮查看在线实例


二、增删改查操作

基本步骤:

【1】连接数据库【2】创建$sql模板语句【3】创建执行$sql语句的模板对象【4】绑定模板语句【5】执行语句【6】关闭连接

1.添加操作

INSERT INTO `表名` SET `字段名`=:变量名/值;

完整模式:

<?php
// 增加一条记录
// 1.连接数据库
require __DIR__ . '/inc/connect.php';
// 2.创建sql模板语
$sql = 'INSERT INTO `grade` SET `stu_name`=:stu_name,`stu_course`=:stu_course,`stu_grade`=:stu_grade';
// 3.创建执行sql语句的对象
$stmt = $pdo->prepare($sql);
// 4.绑定模板语句
$stu_name = '关羽';
$stu_course = 'java';
$stu_grade = '80';
$stmt->bindParam('stu_name',$stu_name,PDO::PARAM_STR);
$stmt->bindParam('stu_course',$stu_course,PDO::PARAM_STR);
$stmt->bindParam('stu_grade',$stu_grade,PDO::PARAM_STR);
// 5.执行操作
if ($stmt->execute()) {
	if($stmt->rowCount()>0){
		echo '成功添加'.$stmt->rowCount().'条记录,主键id是:'.$pdo->lastInsertId();
	}
}else{
	die('<pre>'.print_r($stmt->errorInfo(),true));
}
// 6.关闭连接
$pdo = null;

运行实例 »

点击 "运行实例" 按钮查看在线实例

简化模式:

<?php

require __DIR__ . '/inc/connect.php';
$stmt = $pdo->prepare('INSERT INTO `grade` SET `stu_name`=:stu_name,`stu_course`=:stu_course,`stu_grade`=:stu_grade');
$stmt->execute(['stu_name'=>'刘备','stu_course'=>'java','stu_grade'=>80]);
echo '成功添加'.$stmt->rowCount().'条记录,主键id是:'.$pdo->lastInsertId();

运行实例 »

点击 "运行实例" 按钮查看在线实例

2.删除操作

DELETE FROM `表名` WHERE `字段名`=:变量名/值;

<?php

require __DIR__ . '/inc/connect.php';
$stmt = $pdo->prepare('DELETE FROM `grade` WHERE `stu_id`=:stu_id');
$stmt->execute(['stu_id'=>4]);
echo '成功删除了'.$stmt->rowCount().'条记录';

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.更新操作

UPDATE `表名` SET `字段名`=:变量名/值 WHERE '字段id'=:变量id/id值;

<?php

require __DIR__ . '/inc/connect.php';
$stmt = $pdo->prepare('UPDATE `grade` SET `stu_name`=:stu_name,`stu_course`=:stu_course,`stu_grade`=:stu_grade WHERE `stu_id`=:stu_id');
$stmt->execute(['stu_name'=>'张飞','stu_course'=>'php','stu_grade'=>62,'stu_id'=>3]);
echo '成功更新了'.$stmt->rowCount().'条记录';

运行实例 »

点击 "运行实例" 按钮查看在线实例

4.查询操作

SELECT * FROM `表名` WHERE `字段名`=:变量名/值;

【1】方法一:fetch() + while()

<?php

// 方法一:fetch() + while()
require __DIR__ . '/inc/connect.php';
$stmt = $pdo->prepare('SELECT * FROM `grade` WHERE `stu_course`=:stu_course');
$stmt->execute(['stu_course'=>'php']);
while ($student = $stmt->fetch(PDO::FETCH_ASSOC)) {
	echo '<pre>'.print_r($student,true);
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

【2】方法二:fetchAll()

<?php

// 方法二:fetchAll()
require __DIR__ . '/inc/connect.php';
$stmt = $pdo->prepare('SELECT * FROM `grade` WHERE `stu_course`=:stu_course');
$stmt->execute(['stu_course'=>'java']);
$student = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($student as $student) {
	echo '<pre>'.print_r($student,true);
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

【3】方法三:bindColumn()

<?php

// 方法三:bindColumn()
require __DIR__ . '/inc/connect.php';
$stmt = $pdo->prepare('SELECT * FROM `grade` WHERE `stu_course`=:stu_course');
$stmt->execute(['stu_course'=>'php']);
$stmt->bindColumn('stu_name',$stu_name);
$stmt->bindColumn('stu_course',$stu_course);
$stmt->bindColumn('stu_grade',$stu_grade);
while($stmt->fetch(PDO::FETCH_ASSOC)){
	echo $stu_name.'---'.$stu_course.'---'.$stu_grade.'<br>';
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议