<?php
require("Student.php");
require("DataSource.php");
/**
* 查询全部学生
*
* @return array
*/
function findAllStudents() {
// 获得数据库连接
$conn = getConn();
// 定义SQL字符串
$sql = "SELECT * FROM student";
// 执行查询,返回结果集
$result = $conn->query($sql);
// 定义学生数组
$students = array();
// 定义数组下标
$i = 0;
// 遍历结果集
while($row = $result->fetch_assoc()) {
$students[$i] = new Student();
$students[$i]->setId($row['id']);
$students[$i]->setName($row['name']);
$students[$i]->setGender($row['gender']);
$students[$i]->setAge($row['age']);
$students[$i]->setTelephone($row['telephone']);
$i++;
}
return $students;
}
/**
* 按学号查询学生
*
* @param $id
* @return null|Student
*/
function findStudentById($id)
{
// 获得数据库连接
$conn = getConn();
// 定义SQL字符串
$sql = "SELECT * FROM student WHERE id = $id";
// 执行查询,返回结果集
$result = $conn->query($sql);
// 判断是否有查询记录
if ($result->num_rows > 0) {
// 将查询结果放进关联数组
$row = $result->fetch_assoc();
// 创建学生对象
$student = new Student();
// 设置学生对象属性
$student->setId($row['id']);
$student->setName($row['name']);
$student->setGender($row['gender']);
$student->setAge($row['age']);
$student->setTelephone($row['telephone']);
} else {
$student = null;
}
// 返回学生对象
return $student;
}
/**
* 添加学生记录
* @param $student
* @return bool|mysqli_result
*/
function insertStudent($student)
{
$id = $student->getId();
$name = $student->getName();
$gender = $student->getGender();
$age = $student->getAge();
$telephone = $student->getTelephone();
// 获得数据库连接
$conn = getConn();
// 定义SQL字符串
$sql = "INSERT INTO student VALUES ('$id', '$name', '$gender', '$age', '$telephone')";
// 执行插入操作
$retval = $conn->query($sql);
return $retval;
}
/**
* 按学号删除学生
*
* @param $id
*/
function deleteStudentById($id) {
// 获得数据库连接
$conn = getConn();
// 定义SQL字符串
$sql = "DELETE FROM student WHERE id = $id";
// 执行删除操作
$retval = $conn->query($sql);
return $retval;
}
?>
db_demo.rar
需积分: 0 110 浏览量
更新于2019-08-21
收藏 10KB RAR 举报
《PHP数据库操作详解——以db_demo项目为例》
在IT领域,PHP作为一种广泛使用的服务器端脚本语言,常被用于构建动态网站和Web应用程序。在众多功能中,PHP与数据库的交互是其核心部分,特别是在数据管理方面。本文将通过一个名为"db_demo"的项目,深入探讨如何使用PHP实现数据库连接、数据表记录的增删改查操作。
"db_demo"项目的基础是建立数据库连接。在PHP中,我们可以使用mysqli或PDO(PHP Data Objects)扩展来连接MySQL数据库。例如,使用mysqli,我们创建连接的代码可能如下:
```php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
```
这段代码中,"localhost"代表数据库服务器,"username"和"password"是数据库登录的凭证,"myDB"是你要连接的数据库名称。
接下来,我们要实现数据表记录的增删改查操作。假设我们有一个用户表"user",字段包括"id"、"username"和"password"。
1. **增加(Insert)**:当用户注册时,我们需要将新用户信息插入到数据表中。这可以通过`mysqli_query()`函数实现,如下所示:
```php
$sql = "INSERT INTO user (username, password) VALUES ('John', 'john123')";
if ($conn->query($sql) === TRUE) {
echo "新记录插入成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
```
2. **删除(Delete)**:当用户注销账号,我们需删除对应的记录。例如,删除id为1的用户:
```php
$sql = "DELETE FROM user WHERE id=1";
if ($conn->query($sql) === TRUE) {
echo "记录删除成功";
} else {
echo "Error deleting record: " . $conn->error;
}
```
3. **修改(Update)**:更新用户信息,如修改密码,可以这样操作:
```php
$sql = "UPDATE user SET password='newpassword' WHERE id=1";
if ($conn->query($sql) === TRUE) {
echo "记录更新成功";
} else {
echo "Error updating record: " . $conn->error;
}
```
4. **查询(Select)**:获取和显示用户信息是最常见的操作。比如,查看所有用户:
```php
$sql = "SELECT id, username, password FROM user";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["username"]. " - Password: " . $row["password"]. "<br>";
}
} else {
echo "0 results";
}
```
以上就是"db_demo"项目的核心操作,它展示了PHP如何与MySQL数据库进行交互。理解并熟练掌握这些基本操作,是每个PHP开发者必备的技能。在实际开发中,还需考虑错误处理、事务操作、SQL注入防护等高级主题,以确保应用程序的安全性和稳定性。通过不断的实践和学习,我们可以更好地利用PHP和数据库技术来构建高效、可靠的Web应用程序。

酒城译痴无心剑
- 粉丝: 1w+
最新资源
- React移动端H5项目模板_基于Vite构建的高性能前端开发框架_集成React和TypeScript的现代化技术栈_采用SWC编译器加速构建过程_使用TailwindCSS实现.zip
- wx-chevalier_react-examples_46736_1754646734806.zip
- leizongmin_leizm-web_48620_1754646761195.zip
- oljc_arco-admin_75452_1754646760178.zip
- 基于React框架与TypeScript强类型语言开发的现代化企业级前端应用模板_集成Umi3x路由方案与AntDesign4xUI组件库_提供完整开发脚手架与最佳实践范例_支.zip
- 基于Vue-CLI3x框架构建的TypeScript项目基础模板_包含Vue组件生命周期管理_父子组件通信实现_第三方插件集成_TypeScript类型声明文件编写规范_前端开.zip
- VSCode集成ESLint和Prettier实现TypeScript代码自动格式化与语法检查_前端开发工具配置_代码质量保障_自动化工作流_TypeScript项目规范_编辑器插.zip
- yeshuai0329_react-admin_14440_1754647351349.zip
- shenpvip_taro3-react-mobx-tailwind-template_6820_1754647342852.zip
- GeekQiaQia_vue30-template-admin_46736_1754647070271.zip
- acanyo_home-for-vue_75452_1754647481602.zip
- SpectreAlan_react-cloud-music-typescript_75452_1754647330957.zip
- 基于Vue3和TypeScript的现代化前端开发模板_使用Vite构建工具实现快速开发_支持单文件组件SFC和scriptsetup语法_集成VSCodeVolar.zip
- Allen7D_koa-ts_22416_1754647489810.zip
- 基于Java21和SpringBoot32构建的现代化后台管理系统_采用Vue3TypeScriptElementPlus前端技术栈_实现无安全框架的优雅权限控制方案_支持U.zip
- 基于Vite和Vue3的现代化前端开发模板_集成TypeScript_Pinia_VueRouter_UnoCSS_Sass_Axios等主流技术栈_提供样式重置_接口代理_请求缓.zip