在线地址: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>'; }
运行实例 »
点击 "运行实例" 按钮查看在线实例