入门PHP就来我这(高级)13 ~ 图书添加功能

有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享
路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。


 今天给大家接着上篇文章编写图书添加功能。

1 添加页面

  创建add.html页面样式,废话不多说,直接上完整代码:

<!DOCTYPE html>
<html lang="en" class="is-centered is-bold">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>列表</title><link rel="stylesheet" href="css/bootstrap.min.css"><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"><link href="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet"><script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script><script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script><script src="https://cdn.bootcss.com/moment.js/2.22.0/moment-with-locales.js"></script><script src="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script></head>
<body><div class="container"><div class="col-sm-offset-2 col-sm-8"><div class="panel panel-default"><div class="panel-heading">添加图书</div><div class="panel-body"><form class="form-horizontal" role="form" method="post" action="addBook.php"><div class="row"><div class="col-md-8"><div class="form-group"><label for="name" class="col-md-3 control-label">书名</label><div class="col-md-9"><input type="text" class="form-control" name="name" id="name" value=""></div></div><div class="form-group"><label for="name" class="col-md-3 control-label">类别</label><div class="col-md-9"><select name="category" class="form-control"><option value="PHP类" selected>PHP类</option><option value="JAVA类">JAVA类</option><option value="VUE类">VUE类</option><option value="CPP类">CPP类</option></select></div></div><div class="form-group"><label for="price" class="col-md-3 control-label">价格</label><div class="col-md-9"><input type="text" class="form-control" name="price" id="price" value=""></div></div><div class="form-group"><label for="price" class="col-md-3 control-label" for="publish_time">出版时间</label><div class="col-md-9"><div class="input-group date" id="publish_time"><input type="text" class="form-control" name="publish_time" /><span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span></div></div></div></div>  </div><div class="col-md-8"><div class="form-group"><div class="col-md-6 col-md-offset-6"><button type="submit" class="btn btn-primary btn-lg"><i class="fa fa-disk-o"></i>提   交</button></div></div></div></form></div></div></div></div><script>$('#publish_time').datetimepicker({format: 'YYYY-MM-DD',locale: moment.locale('zh-cn'),defaultDate: new Date()});$(function () {$('#publish_time').datetimepicker({format: 'YYYY-MM-DD HH:mm',locale: moment.locale('zh-tw')});});</script>
</body>
</html>

2 编写php后端的实现逻辑

创建文件addBook.php文件。(注释很详细)

<?php
//指定数据库为db_test$dbName = 'db_test';//数据库服务器连接$link = mysqli_connect('localhost','root','passwd');//如果数据库db_test连接成功,则进入数据插入功能逻辑if(mysqli_select_db($link,$dbName)) {//数据库编码格式设置成utf-8$result = mysqli_query($link,"set names utf8");//使用安全的prepareStatement语法实现sql的插入$stmt = mysqli_prepare($link,"insert into books (name,category,price,publish_time)values(?,?,?,?)");if(!$stmt){die('mysqli error:'.mysqli_error($link));}$name=$_POST['name'];$category=$_POST['category'];$price=$_POST['price'];$publish_time=$_POST['publish_time'];//实现参数的绑定mysqli_stmt_bind_param($stmt, 'ssds',$name,$category,$price,$publish_time);//进行执行sqlmysqli_stmt_execute($stmt);//检测执行行数,返回0表示没有记录更新,返回n行数说明更新了n条数据 -1代表异常。if(mysqli_stmt_affected_rows($stmt)){echo "<script>alert('添加成功!');window.location.href='index.php';</script>";}else{echo "<script>alert('添加失败!');</script>";}} else{echo $dbName."未连接!";}
?>

对上述代码进行补充说明:

mysqli_stmt_bind_param($stmt, 'ssds',$name,$category,$price,$publish_time);

第一个参数$stmt 是statement标识符.

第二个参数'ssds'代表后面的四个变量分别代表的类型是string ,string ,double,string。

这个类型在PHP中总共包含四类:

绑定变量的数据类型
字符种类代表的数据类型
iinteger
ddouble
sstring
bblob

3 展示效果

注意:一定要看好浏览器输入的方式:http://域名/add.html

输入图书信息,和出版日期,点击提交按钮,进入图书列表页面:

原来是这样的:

添加后结果如下:

 

 下篇 图书信息管理编辑


大家如果喜欢技术,并想有个好的交流平台可以关注我的 我的知乎首页,会不定期分享本人觉得比较好的技术类电子书。

另外,自己创建的一个技术qq群,玩转技术群,该群里功能:分享技能,电子书,代码,以及兼职项目等交流,欢迎大家加入一起交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1474686.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

去O化神器 Exbase

随着去O化进程推动&#xff0c;很多旧业务依赖的oracle数据库&#xff0c;都需要实现做数据库的替换&#xff0c;当下能很好兼容Oracle&#xff0c;并实现异构数据库之间转换的工具并不多。这里给大家推荐一个商业工具数据库迁移工具exbase&#xff08;北京海量&#xff09;&am…

排序格式排序格式

排序格式排序格式

CosyVoice - 阿里最新开源语音克隆、文本转语音项目 支持情感控制及粤语 本地一键整合包下载

近日&#xff0c;阿里通义实验室发布开源语音大模型项目FunAudioLLM&#xff0c;而且一次包含两个模型&#xff1a;SenseVoice和CosyVoice。 CosyVoice专注自然语音生成&#xff0c;支持多语言、音色和情感控制&#xff0c;支持中英日粤韩5种语言的生成&#xff0c;效果显著优于…

Java多线程不会?一文解决——

方法一 新建类如MyThread继承Thread类重写run()方法再通过new MyThread类来新建线程通过start方法启动新线程 案例&#xff1a; class MyThread extends Thread {public MyThread(String name) {super(name);}Overridepublic void run() {for(int i0;i<10;i){System.out.…

深度学习中的Channel,通道数是什么?

参考文章&#xff1a; 直观理解深度学习的卷积操作&#xff0c;超赞&#xff01;-CSDN博客​​​​​​如何理解卷积神经网络中的通道&#xff08;channel&#xff09;_神经网络通道数-CSDN博客 深度学习-卷积神经网络—卷积操作详细介绍_深度卷积的作用-CSDN博客 正文&…

土豆炒肉做法

菜单&#xff1a;土豆、葱、铁辣子、纯瘦肉、淀粉、生抽、酱油、刀、案板、十三香、盐巴、擦板 流程&#xff1a; 洗土豆&#xff0c;削皮&#xff0c;擦成条&#xff0c;用凉水过滤两遍淀粉&#xff0c;顺便放个燥里洗肉&#xff0c;切成条&#xff0c;按照生抽、酱油、淀粉、…

QT入门笔记-自定义控件封装 30

具体代码如下: QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 …

vue3项目 前端blocked:mixed-content问题解决方案

一、问题分析 blocked:mixed-content其实浏览器不允许在https页面里嵌入http的请求&#xff0c;现在高版本的浏览器为了用户体验&#xff0c;都不会弹窗报错&#xff0c;只会在控制台上打印一条错误信息。一般出现这个问题就是在https协议里嵌入了http请求&#xff0c;解决方法…

react dangerouslySetInnerHTML将html字符串以变量方式插入页面,点击后出现编辑状态

1.插入变量 出现以下编辑状态 2.解决 给展示富文本的标签添加css样式 pointerEvents: none

Python28-7.4 独立成分分析ICA分离混合音频

独立成分分析&#xff08;Independent Component Analysis&#xff0c;ICA&#xff09;是一种统计与计算技术&#xff0c;主要用于信号分离&#xff0c;即从多种混合信号中提取出独立的信号源。ICA在处理盲源分离&#xff08;Blind Source Separation&#xff0c;BSS&#xff0…

cmake find_package 使用笔记

目录 1 find_package2 config mode2.1 搜索的文件名2.2 搜索路径 3 module mode3.1 搜索的文件名3.2 搜索路径 参考 1 find_package 这是官方文档 下面是学习总结&#xff1a; 首先是find_package的作用是什么&#xff1f;引入预编译的库。 find_package有两种模式&#xff1a…

论文研读|AI生成图像检测发展历程及研究现状

前言&#xff1a;本篇博客系统性梳理AI生成图像检测的研究工作。 「人工智能生成图像检测」研究及发展现状介绍 参考资料 https://fdmas.github.io/AIGCDetect/针对AIGC检测的鲁棒性测试——常见攻击手段汇总论文研读&#xff5c;以真实图像为参考依据的AIGC检测论文研读&…

导航栏样式,盒子模型

1.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>li{he…

第一百四十七节 Java数据类型教程 - Java字符串字符

Java数据类型教程 - Java字符串字符 索引字符 您可以使用charAt()方法从String对象中获取特定索引处的字符。索引从零开始。 下面的代码打印索引值和字符在“W3CSCHOOL.CN"字符串中的每个索引处: public class Main {public static void main(String[] args) {String s…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】 购物车需求描述购物车数据结构数据Model抽取实现流程&#xff08;参照京东&#xff09;代码实现参考 购物车需求描述 用户可以在登录状态下将商品添加到购物车【用户购物…

读人工智能全传05专家系统

1. 知识就是力量 1.1. 人工智能领域此前存在的问题是过度关注搜索和解决问题这种通用法则 1.2. “弱”方法缺少一个关键的要素&#xff0c;而这一要素才是在所有智能行为中起决定性作用的组成部分&#xff1a;知识 1.3. 一种基于知识的人工智能系统&#xff1a;专家系统开始…

2024年第十四届亚太地区大学生数学建模竞赛(中文赛项)B题洪水灾害的数据分析与预测论文和代码分析

经过不懈的努力&#xff0c; 2024年第十四届亚太地区大学生数学建模竞赛&#xff08;中文赛项&#xff09;B题洪水灾害的数据分析与预测论文和代码已完成&#xff0c;代码为C题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求…

python函数和c的区别有哪些

Python有很多内置函数&#xff08;build in function&#xff09;&#xff0c;不需要写头文件&#xff0c;Python还有很多强大的模块&#xff0c;需要时导入便可。C语言在这一点上远不及Python&#xff0c;大多时候都需要自己手动实现。 C语言中的函数&#xff0c;有着严格的顺…

Excel 宏录制与VBA编程 ——VBA编程技巧篇三 (未初始化Range判断、遍历工作表方法、工作表多行重复内容剔除)

未初始化Range的判断 有时候需要对已定义未初始化的range对象做判断 dim curRange as range If curRange Is Nothing Thendebug.print("未初始化的..") End If遍历工作表方法 Chr&#xff08;10&#xff09;&#xff1a;ASCII码中的换行键&#xff0c;相当于vbLF。 …

昇思MindSpore学习笔记4-04生成式--GAN图像生成

摘要&#xff1a; 记录昇思MindSpore AI框架使用GAN生成式对抗网络模型生成图像的原理和实际使用方法、步骤。包括环境准备、数据集下载、数据加载、隐码、构建生成器与判别器、模型训练、模型推理等。 一、概念 GAN生成式对抗网络模型 (Generative Adversarial Networks) …