PHP程序功能设计

以留言板为例。

数据表设计

  分析数据表结构:有哪些信息需要存储:留言信息:ID,留言标题,留言内容,留言时间,留言人

CREATE TABLE message(
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(120) NOT NULL DEFAULT ‘‘,
content VARCHAR(255) NOT NULL DEFAULT ‘‘,
created_at INT UNSIGNED NOT NULL DEFAULT ‘0‘,
user_name  VARCHAR(32) NOT NULL DEFAULT ‘‘,
KEY message_user_name(user_name)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

选择PHP连接数据库的方式

  PDO:可扩展性更好,支持预处理,面向对象

  MySQLi:只支持MySQL操作,支持预处理,面向对象和过程,效率较高

  mysql:只支持MySQL数据库,没有预处理的支持,面向过程

  PDO的基本操作:

<?php
try{
     操作数据库代码
}catch(PDOException $e){
     echo $e->getMessage();
}

  操作数据库代码:

$pdo = new PDO($dsn, $username, $password, $attr);
$sql = ‘SELECT id, title, content FROM message where user_name=:user_name‘;
$stmt = $pdo->prepare($sql);
$stmt->execute([ ‘:user_name‘ => $user_name]);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

  form.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>留言本</title>
</head>
<body>
    <form action="store.php" method="post">
        标题:<input type="text" name="title"><br>
        内容:<textarea cols="35" rows="10" name="content"></textarea><br>
        留言人:<input type="text" name="user_name"><br>
        <input type="submit" value="添加">
    </form>
</body>
</html>

  store.php

<?php
$title = $_POST[‘title‘];
$content = $_POST[‘content‘];
$user_name = $_POST[‘user_name‘];

if(empty($title) || empty($content) || empty($user_name)){
    exit(‘标题或者内容或者用户名不能为空‘);
}

try {
    $dsn = ‘mysql:dbname=blog;host=localhost‘;
    $username = ‘root‘;
    $password = ‘rootroot‘;
    $attr = [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ];
    $pdo = new PDO($dsn, $username, $password, $attr);

    $sql = ‘insert into message(title, content, created_at, user_name) values(:title, :content, :created_at, :user_name)‘;
    $stmt = $pdo->prepare($sql);
    $data = [
        ‘:title‘ => $title,
        ‘:content‘ => $content,
        ‘:created_at‘ => time(),
        ‘:user_name‘ => $user_name
    ];
    $stmt->execute($data);
    $rows = $stmt->rowCount();
    if($rows){
        exit(‘添加成功‘);
    }else{
        exit(‘添加失败‘);
    }
}catch (PDOException $e){
    echo $e->getMessage();
}

  

  无限分类表:1. id title pid/path  order by排序

原文地址:https://www.cnblogs.com/cn-sbo/p/10839642.html

时间: 2024-10-14 02:48:48

PHP程序功能设计的相关文章

web 安全 初探 (正在更新)

1.web应用程序所采用的防卫机制的几个核心构成: 1.处理用户对应用程序的数据和功能的访问,以防止用户未经授权访问.2.处理用户的输入,以防止恶意的输入导致未预期的行为.3.处理攻击,以确保应用程序在被直接攻击时作出恰当的行为,如采取适当的防御和进攻性措施,以挫败攻击.4.通过使管理员能够监控应用程序的活动和配置应用程序的功能来管理应用程序本身. 1.1处理用户访问 大多数web应用程序都使用下面的三重相关的安全机制来处理访问:1.验证2.会话管理3.访问控制 1.1.1验证 验证机制在一个应

个人读后感作业

用专业知识教育人是不够的.通过专业教育,他可以成为一种有用的机器,但是不能成为一个和谐发展的人.要使学生对价值有所理解并且产生热烈的感情,那是最基本的.他必须获得对美和道德上的善恶鲜明的辨别力.否则,他 —— 连同他的专业知识 —— 就更像一只受过很好训练的狗,而不像一个和谐发展的人.为了获得对别人和对集体的适当关系,他必须学习去了解人们的动机.他们的幻想和他们的疾苦.  ---- 爱因斯坦 学了一个学期的软件工程课,终于知道了个软件工程的大概.学的时候总觉得很抽象,理解起来好像不难,但总是摸不

网站设计概念详解之第一章(入住博客园十月16日记)

1基本概述编辑 简单来说,网站设计的目的就是产生网站.简单的信息如文字,图片(GIFs, JPEGs,PNGs)和表格,都可以通过使超文件标示语言.可扩展超文本标记语言等标示语言放置到网站页面上.而更复杂的信息如矢量图形.动画.视频.声频等多媒体档案则需要插件程序来运行,同样地它们亦需要标示语言移植在网站内.网页设计是设计过程的前端(客户端)的设计通常用于描述一个网站,包括写标记,但是这是一个灰色地带,因为这还覆盖了网络的发展.网页设计师预计将有意识的可用性,如果他们的作用,需要创建标记,那么它

31701424_王志伟_第二组_软件工程个人体验

源代码链接: web端:https://github.com/LinXS597/SUManager 小程序端:https://github.com/fireworks-EX/StudentUnion 安卓端: 后端:https://github.com/zhang-wangz/ruangong-backen 小组分工: 学号 姓名 分工 31702283 王樟 后端设计与开发(java).Druid数据池 31703178 林型双 网页前端设计开发(web) 31701424 王志伟 微信小程序

【Android教学用例程序】LBS 2 - 功能设计与实现

打开后自动定位,并显示相关数据. 点击按钮可以刷新数据,未设置自动刷新,省电... 自动根据定位模式,亮起GPS或NET灯. Ref:<第一行代码>郭霖,百度地图官方文档 准备工作: 获取API_Key(AK)参考<第一行代码>,该书写得比较详细.也可参考百度官方文档. 下载 BaiduLBS_AndroidSDK V7.1 基础包:http://lbsyun.baidu.com/index.php?title=android-locsdk/geosdk-android-downl

Java精品高级课,架构课,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,第三方支付,web安全,视频教程

36套精品Java架构师,高并发,高性能,高可用,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,P2P金融项目,大型分布式电商实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Elasticsearch,Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.java8新特性,P2P金融项目,程序设计,

C#开发微信门户及应用(47) - 整合Web API、微信后台管理及前端微信小程序的应用方案

在微信开发中,我一直强调需要建立一个比较统一的Web API接口体系,以便实现数据的集中化,这样我们在常规的Web业务系统,Winform业务系统.微信应用.微信小程序.APP等方面,都可以直接调用基于JSON数据格式的Web API接口,在我之前的几篇随笔中,对这方面都有一定的介绍,本篇继续这个主题,细致深入的阐述如何在接口和源码的基础上整合Web API.微信后台管理及前端微信小程序的应用方案. 1.基于Web API的微信开发框架 首先我们各个业务模块,都应该围绕着Web API进行展开,

程序员成熟的标志

程序员在经历了若干年编程工作之后,很想知道自己水平到底如何?自己是否已经成为成熟的程序员?虽然程序员会对自己有一个自我评价,但是,自己的评 价和社会的评价.专业的评价会有差异,所以程序员自己并不能肯定这个评价.现实中,除了各种证书之外,很少有人会专门给出一个程序员的成熟度的评价.人们往往是偶发性地就事论事地对程序员的工作作出好与不好,行与不行的评论.因此,程序员对此感到很茫然,不知道要从那些方面去评价自己的能力. 一个程序员到底成熟不成熟,我想从以下几个方面谈谈自己的看法. 1.技术标志 如果程

微型工作流引擎-功能设计

我的微型工作流引擎-功能设计解析及使用示例 一.前言 上一篇我给大家介绍了我的工作流的模型和基本的设计,这篇我想详细说明下我这款工作流的功能及使用示例.这款工作流主要是面向开发者设计的,为了先让大家有个全局的认识,局部功能的设计实现就不细说了,后续有时间我会继续写文章向大家介绍. 二.功能详解及使用示例代码 1.配置流程引擎,一般在程序启动过程中调用(Global.asax.cs中) //初始化流程引擎 BpmConfiguration .Instance() .Config(@"C:\Conf