- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章thinkPHP5实现数据库添加内容的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了thinkphp5实现数据库添加内容的方法。分享给大家供大家参考,具体如下:
面对一个新框架安装好了一般不知道要干啥。那就先做一个写入功能先.
先做好准备工作先,首先要连接上数据库.
配置文件在application下的database.php里 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
return
[
// 数据库类型
'type'
=>
'mysql'
,
// 服务器地址
'hostname'
=>
'127.0.0.1'
,
// 数据库名
'database'
=>
'shoptest'
,
// 用户名
'username'
=>
'root'
,
// 密码
'password'
=>
''
,
// 端口
'hostport'
=>
'3306'
,
// 连接dsn
'dsn'
=>
''
,
// 数据库连接参数
'params'
=> [],
// 数据库编码默认采用utf8
'charset'
=>
'utf8'
,
// 数据库表前缀
'prefix'
=>
''
,
// 数据库调试模式
'debug'
=> true,
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy'
=> 0,
// 数据库读写是否分离 主从式有效
'rw_separate'
=> false,
// 读写分离后 主服务器数量
'master_num'
=> 1,
// 指定从服务器序号
'slave_no'
=>
''
,
// 是否严格检查字段是否存在
'fields_strict'
=> true,
// 数据集返回类型
'resultset_type'
=>
'array'
,
// 自动写入时间戳字段
'auto_timestamp'
=> false,
// 时间字段取出后的默认时间格式
'datetime_format'
=>
'y-m-d h:i:s'
,
// 是否需要进行sql性能分析
'sql_explain'
=> false,
];
|
设置好之后先放着,先建立一个控制器 。
默认下载的集合中,application文件夹里有一个index的文件夹.
里面是用来存放控制器,类和模板的文件夹,名字可以修改.
如果用过3.2的就很好理解了,就是相当于原来的home文件.
在这个文件夹里先创建三个文件夹 。
然后再controller文件夹里新建一个index.php的文件(其实默认就有一个).
在class类里写入这样的代码 。
1
2
3
4
|
public
function
indexs()
{
return
'我打开控制器了'
;
}
|
在网址栏输入 服务器名/index/index/indexs 。
可以看见一行文字.
加下来先引入模板.
先添加use thinkiew;引入模板库.
1
2
|
$view
=
new
view;
return
$view
->fetch(
'模板名'
);
|
那么模板放在哪里。controller文件夹有一个view文件夹 。
如果你直接把模板文件拖进去的话会报错.
看报错路径的后半部分。/application/indexiewindexdda.html 。
application/index/view这个都能找到 。
接下来又是一个文件夹的名字和文件名字.
这个文件夹对应着的是控制器的名字,也就是说要建立一个对应的文件夹。再把模板拖进去即可调用。当然,一个完整的框架不会只有这一个方法。其他的细节以后在研究.
表单提交的常用的两个写法,input('post.xxx')指的是获取post值.
1
2
3
4
5
6
7
8
9
10
|
//调用db类
use
thinkdb;
$data
= [
'title'
=> input(
'post.title'
),
'content'
=> input(
'post.title'
)];
db::table(
'blogmsg'
)->insert(
$data
);
//建立model的写法
$mod
=
new
ppindexmodellogmsg;
$mod
->title = input(
'post.title'
);
$mod
->content = input(
'post.content'
);
$mod
->save();
echo
$mod
->id;
|
相对而言,个人比较喜欢这样的写法。使用request来完成添加。(对以后使用laravel有好处) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
//引入request。
use
think equest;
public
function
add(request
$req
){
//如果添加的内容需要处理,先单独取出然后赋值进去($req->post('title')可以获取其中的值)
$a
= rtrim(
$req
->post(
'title'
),
' '
);
$req
->post([
'title'
=>
$a
]);
//准备添加
$mod
=
new
ppindexmodellogmsg;
//allowfield可以选择只添加哪些字段。
$mod
->allowfield([
'title'
,
'content'
])->save(
$req
->post());
//获取返回的主键
echo
$mod
->id;
}
|
说道添加数据,那么肯定需要自动验证了.
这次的自动验证可以单独的写一个文件。在index文件夹内创建一个validate文件夹,内部创建一个和model文件夹内相同名字的php文件。方便使用.
样本 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
namespace
appindexalidate;
use
thinkalidate;
class
blogmsg
extends
validate
{
//写规则
protected
$rule
= [
'title'
=>
'require|max:25'
,
'content'
=>
'require|max:255'
,
];
//写报错返回信息
protected
$message
= [
'title.require'
=>
'必须填写'
,
'title.max'
=>
'不能超过25个字符'
,
'content.require'
=>
'必须填写'
,
'content.max'
=>
'不能超过255个字符'
,
];
protected
$scene
= [
'add'
=> [
'title'
,
'content'
],
'edit'
=> [
'title'
,
'content'
],
];
}
|
然后控制器部分的改动 。
1
2
3
4
5
6
|
$a
=
$mod
->validate(true)->allowfield([
'title'
,
'content'
])->save(
$req
->post());
if
(false ===
$a
){
// 验证失败 输出错误信息
dump(
$mod
->geterror());
die
;
}
|
最后做一个防止重复提交以及远程提交的表单令牌功能:在模板中的form表单里加入{:token()},然后再验证的规则里做一下修改,验证规则加一个token。如下:
1
|
'title'
=>
'require|max:25|token'
,
|
至此,文章添加部分告一段落.
希望本文所述对大家基于thinkphp框架的php程序设计有所帮助.
原文链接:http://blog.csdn.net/booljiaoyu/article/details/58049140 。
最后此篇关于thinkPHP5实现数据库添加内容的方法的文章就讲到这里了,如果你想了解更多关于thinkPHP5实现数据库添加内容的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
thinkphp开发图片上传,图片异步上传是目前比较方便的功能,这里我就不写css文件了,将代码写出来。引入核心文件下载https://github.com/carlcarl/A... HTML
现在谁不开发接口的呢?但是在接口开发过程中,报错误html">异常后居然返回错误的信息依然是html信息!TP官方也不知道为啥不添加,说好的为接口而生,我的解决方案也很简单,把系统的
thinkphp 抓取网站的内容并且保存到本地的实例详解 我需要写这么一个例子,到电子课本网下载一本电子书。 电子课本网的电子书,是把书的每一页当成一个图片,然后一本书就是有很多张图片,我需要批
假设数据库中会计科目数据表的字段为:id,code,name,islast。分别为自增主键,科目编码,科目名称,是否为末级("1"表示末级科目)。 这里在Thinkphp的模型
本文实例讲述了thinkphp+phpexcel实现excel报表输出功能。分享给大家供大家参考,具体如下: 准备工作: 1.下载phpexcel1.7.6类包; 2.解压至tp框架的thin
ThinkPHP 内置的模板引擎来定义模板文件,以及使用加载文件、模板布局和模板继承等高级功能。 每个模板文件在执行过程中都会生成一个编译后的缓存文件,其实就是一个可以运行的 PHP 文件。 引
本文实例讲述了thinkPHP+ajax实现统计页面pv浏览量的方法。分享给大家供大家参考,具体如下: 统计pv量很常用,下面的代码用ajax实现的,使用ajax可以避免页面缓存造成的影响,只要客
在很多网站中都会有使用404页面的时候,在ThinkPHP框架中该如何设置呢,接下来我介绍其中一种方法 1、首先要在Lib/Action 下建立EmptyAction.class.php模块 内容
话不多说,请看代码: ? 1
ThinkPHP 模板substr的截取字符串函数 在Common/function.php加上以下代码 ?
先上效果图: 那个file按钮样式先忽略 点击选择图片(浏览),随便选一张图片 js代码如下 ?
本文实例分析了thinkPHP js文件中U方法不被解析问题。分享给大家供大家参考,具体如下: 我想在js文件中写ajax, 写完发现异常, 本以为是js文件中不支持ajax 后来发现时地址
使用TP 3.2框架 ? 1
本文实例讲述了thinkphp,onethink和thinkox中验证码不显示的解决方法。分享给大家供大家参考,具体如下: 使用验证码的时候,一开始正常,后来不显示了 网上说是utf-8的编码问
1、基础知识 1.手机APP的类型 移动端的应用有这几种:WebApp,NativeApp,HybridApp。 WebApp 就是手机网站,需要用手机浏览器访问。 NativeApp是用
ThinkPHP CURD操作的查询方法中最常用但也是最复杂的就是where方法。where方法也属于模型类的连贯操作方法之一,主要用于查询和操作条件的设置。 where方法的用法是ThinkPH
ThinkPHP CURD方法的limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多。并且ThinkPHP的limit方法可以兼容所有的数据库驱动类
ThinkPHP CURD方法的page方法也是模型连贯操作方法之一,是完全为分页查询而诞生的一个人性化操作方法。 用法 我们在前面已经分析了关于limit方法用于分页查询的情况,而page方法则
ThinkPHP CURD方法的table方法也属于模型类的连贯操作方法之一,该方法主要用于指定操作的数据表。 具体用法如下: 一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,
ThinkPHP CURD方法的order方法属于模型的连贯操作方法之一,该方法用于对操作的结果排序。 具体用法如下: ?
我是一名优秀的程序员,十分优秀!