#248
展开↯#249
作者:广西南宁市
//返回文章内容
public function rHtml(){
$param = $this->request->param();
if(isset($param['id']) && $param['id']) $id=$param['id'];
else exit('no id');
$content=ArticlesModel::find($id);
// 模板输出并变量赋值
return View::fetch('runhtml', [
'content' => $content->content
]);
}
public function runM(){
return View::fetch('runM');
}Run code
Cut to clipboard
文章:html模拟手机页面 发表时间:2021-08-25, 18:32:46
#251
作者:广西南宁市
bat运行node,bat npm,bat预先 vue编译,npm run dev
cd/
e:
cd Php-project\jxt\view\group
npm run dev
pauseRun code
Cut to clipboard
文章:linux安装nodejs 发表时间:2021-08-18, 18:00:46
#252
作者:广西南宁市
bat 进入指定目录
cd/
e:
cd test1/test2Run code
Cut to clipboard
文章:linux安装nodejs 发表时间:2021-08-18, 18:00:00
#253
作者:广西南宁市
上传进度显示:
<el-upload class="avatar-uploader el-upload--text" :action="uploadUrl" :show-file-list="false" :on-success="handleVideoSuccess" :before-upload="beforeUploadVideo" :on-progress="uploadVideoProcess">Run code
Cut to clipboard
uploadVideoProcess(event, file, fileList){
this.videoFlag = true;
this.videoUploadPercent = file.percentage.toFixed(0);
},Run code
Cut to clipboard
文章:vue+element-ui中上传文件使用Progress自定义实时更新进度条 发表时间:2021-08-18, 17:59:18
#254
作者:广西南宁市
<el-upload
class="upload-demo"
action="#"
ref="upimg"
:on-success="handleAvatarSuccess"
:on-progress="uploadVideoProcess"
:http-request="httpRequestLogo"
:limit="1"
>
<el-button size="mini" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
</el-upload>Run code
Cut to clipboard
handleAvatarSuccess(res, file) {
//console.log(213);
// this.myData= file;
this.$refs.upimg.clearFiles(); //上传成功之后清除历史记录
//this.handleInitTableData(); //初始化表格数据
},
/*uploadVideoProcess(event, file, fileList){
console.log(file.percentage.toFixed(0));
},*/
// 图片上传
httpRequestLogo(file) {
if('' === this.categoryprice) {
return this.$message.error('请选择图片分类')
}
let formdata = new FormData()
formdata.append('file',file.file)
formdata.append('name',file.file.name)
formdata.append('categoryId', this.categoryprice)
this.loading=true;
const config = {
onUploadProgress: progressEvent => {
// progressEvent.loaded:已上传文件大小
// progressEvent.total:被上传文件的总大小
let progressPercent = Number((progressEvent.loaded / progressEvent.total * 100).toFixed(2))
if(progressPercent>99) this.loading=false;
this.progressPercent=progressPercent;
//console.log(progressPercent);
}
}
this.$http.post('/image/upload', formdata,config).then(({ data: res }) => {
console.log(res)
if(1 !== res.code) {
return this.$message.error(res.msg)
}
this.$message.success('上传成功')
this.handleAvatarSuccess()
this.getDataList()
})
},Run code
Cut to clipboard
文章:vue+element-ui中上传文件使用Progress自定义实时更新进度条 发表时间:2021-08-18, 17:58:20
#255
作者:广西南宁市
设置权限
chmod 777 项目文件夹/node_modules/.bin/vue-cli-serviceRun code
Cut to clipboard
文章:linux安装nodejs 发表时间:2021-08-17, 15:53:33
#256
作者:广西南宁市
<!--配置文件
value: //编辑器内容
config:{
eddc:{
//其他
},
toolbars:[ //工具栏]
}
editorNum: 1 //编辑器编号
width: 75%
width1: 380px
-->
<template>
<!--<script id="editor" type="text/plain"></script>-->
<div>
<div :id="'editor'+editorNum"></div>
<JxtPicture
:exhibition="exhibition"
@close="onClose"
:title="'图片管理'"
@getImg="getImg"
:width="'75%'"
:width1="'380px'"
:priceLength="10000"
v-if="exhibition"
></JxtPicture>
</div>
</template>
<script>
import JxtPicture from '../components/jxt-picture.vue'
export default {
name: 'ue1',
components: {
JxtPicture
},
props: {
editorNum:{
type: Number,
default:1 //编辑器编号
},
value: {
type: String,
default: '',
required: false
},
config: {
type: Object,
default: {
eddc:{},
toolbars:[]
},
required: false
},
},
data() {
return {
exhibition:false,
editor: null,
instance: null,
//texta: 333,
configd:this.config,
eddc:{
initialFrameWidth:null ,//宽度随浏览器自适应
wordCount: false, //关闭字数统计
elementPathEnabled : false,//隐藏元素路径
autoHeightEnabled: true,//是否自动长高
autoFloatEnabled: true,//是否保持toolbar的位置不动
initialFrameHeight: 360,
},
toolbars: [[
'source', //源代码
//'anchor', //锚点
'undo', //撤销
'redo', //重做
'|',
'forecolor', //字体颜色
'backcolor', //背景色
'bold', //加粗
//'indent', //首行缩进
//'snapscreen', //截图
'italic', //斜体
'underline', //下划线
'strikethrough', //删除线
'subscript', //下标
'fontborder', //字符边框
'superscript', //上标
'|',
'formatmatch', //格式刷
//'blockquote', //引用
'pasteplain', //纯文本粘贴模式
'selectall', //全选
//'print', //打印
//'preview', //预览
'horizontal', //分隔线
'removeformat', //清除格式
'|',
//'time', //时间
//'date', //日期
//'unlink', //取消链接
'insertrow', //前插入行
'insertcol', //前插入列
'mergeright', //右合并单元格
'mergedown', //下合并单元格
'deleterow', //删除行
'deletecol', //删除列
'splittorows', //拆分成行
'splittocols', //拆分成列
'splittocells', //完全拆分单元格
'deletecaption', //删除表格标题
'inserttitle', //插入标题
'mergecells', //合并多个单元格
'deletetable', //删除表格
'cleardoc', //清空文档
//'insertparagraphbeforetable', //"表格前插入行"
//'insertcode', //代码语言
//'fontfamily', //字体
'|',
'fontsize', //字号
'paragraph', //段落格式
//'simpleupload', //单图上传
//'insertimage', //多图上传
//'edittable', //表格属性
//'edittd', //单元格属性
//'link', //超链接
//'emotion', //表情
//'spechars', //特殊字符
//'searchreplace', //查询替换
//'map', //Baidu地图
//'gmap', //Google地图
//'insertvideo', //视频
//'help', //帮助
'|',
'justifyleft', //居左对齐
'justifyright', //居右对齐
'justifycenter', //居中对齐
'justifyjustify', //两端对齐
'|',
'insertorderedlist', //有序列表
'insertunorderedlist', //无序列表
//'directionalityltr', //从左向右输入
//'directionalityrtl', //从右向左输入
//'rowspacingtop', //段前距
//'rowspacingbottom', //段后距
'pagebreak', //分页
'insertframe', //插入Iframe
'|',
'imagenone', //默认
'imageleft', //左浮动
'imageright', //右浮动
//'attachment', //附件
'imagecenter', //居中
//'wordimage', //图片转存
'lineheight', //行间距
//'edittip ', //编辑提示
//'customstyle', //自定义标题
//'autotypeset', //自动排版
//'webapp', //百度应用
//'touppercase', //字母大写
//'tolowercase', //字母小写
//'background', //背景
//'template', //模板
//'scrawl', //涂鸦
//'music', //音乐
'inserttable', //插入表格
//'drafts', // 从草稿箱加载
'charts', // 图表
'|',
'fullscreen', //全屏
'macros', // 自定义上传
]]
}
},
watch: {
value: {
handler: function(val, oldVal) {
this.editor = window.UE.getEditor('editor'+this.editorNum, this.configd);
this.editor.setContent(val);
}
}
},
mounted () {
let config=this.config;
//console.log(config.eddc);return false;
let eddc=config.eddc && Object.keys(config.eddc).length!=0?config.eddc:this.eddc
let toolbars=config.toolbars
&& config.toolbars.length
&& config.toolbars[0]
&& config.toolbars[0].length
?config.toolbars:this.toolbars
//console.log(eddc);
eddc.toolbars=toolbars;
console.log(eddc)
this.configd=eddc;
this.$nextTick(() => {
const _this = this
this.editor = window.UE.getEditor('editor'+this.editorNum, this.configd);
this.editor.addListener('ready', function () {
_this.editor.setContent(_this.value)
})
this.editor.commands['macros'] = {
execCommand : () => {
this.beforeInsertImage()
},
queryCommandState: function(){
}
}
})
},
methods: {
onClose() {
this.exhibition = false
},
getUEContent () {
return this.editor.getContent()
},
beforeInsertImage() {
//this.$emit('showModal', { editor: 'editor' })
//console.log(e)
this.exhibition = true
//this.priceLength = 10000
},
getImg(e) {
let UE = this.editor
e.forEach(item => {
UE.execCommand('insertHtml', `<img src=${item.org_img}>`)
})
},
},
destroyed () {
this.editor.destroy()
}
}
</script>
<style lang="scss" scoped>
/*#editor {
width: 90vh;
}*/
</style>Run code
Cut to clipboard
文章:百度Ueditor编辑器宽度高度自适应 发表时间:2021-08-17, 09:27:37
#257
作者:广西南宁市
UEditor自定义toolbar工具条
使用ueditor的同学都知道,ueditor里有很多功能,
很全面,但有时候我们的编辑器不需要太多的功能,比如前台评论或者留言,就不需要这么多功能了,
那我们怎么去定制自己想要的工具呢?
官方给出了两个方法,
ueditor工具栏上的按钮列表可以自定义配置,
只需要通过修改配置项就可以实现需求:
1. 方法一:修改ueditorconfig.js里面的toolbars
2. 方法二:实例化编辑器的时候传入toolbars参数
第一种貌似不适合,需要改ueditor.config.js文件,有点麻烦,
第二种就很好,我们且来看看第二种方法,示例如下:
<script type="text/javascript" src="ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="ueditor/ueditor.all.min.js"> </script>
<script type="text/javascript" src="ueditor/lang/zh-cn/zh-cn.js"></script>
<script>
$(function() {
//本来是这样的:UE.getEditor('editor'); 传入参数后就是下面那样子了,toolbars里的就是工具的图标
UE.getEditor('editor', {
toolbar: [
['fullscreen', 'source', 'undo', 'redo', 'bold', 'italic',
'underline','fontborder', 'backcolor', 'fontsize', 'fontfamily',
'justifyleft', 'justifyright','justifycenter', 'justifyjustify',
'strikethrough','superscript', 'subscript', 'removeformat',
'formatmatch','autotypeset', 'blockquote', 'pasteplain', '|',
'forecolor', 'backcolor','insertorderedlist', 'insertunorderedlist',
'selectall', 'cleardoc', 'link', 'unlink','emotion', 'help']
]
});
})
</script>Run code
Cut to clipboard
配置项里用竖线
'|'Run code
Cut to clipboard
完整的按钮列表
toolbars: [
[
'anchor', //锚点
'undo', //撤销
'redo', //重做
'bold', //加粗
'indent', //首行缩进
'snapscreen', //截图
'italic', //斜体
'underline', //下划线
'strikethrough', //删除线
'subscript', //下标
'fontborder', //字符边框
'superscript', //上标
'formatmatch', //格式刷
'source', //源代码
'blockquote', //引用
'pasteplain', //纯文本粘贴模式
'selectall', //全选
'print', //打印
'preview', //预览
'horizontal', //分隔线
'removeformat', //清除格式
'time', //时间
'date', //日期
'unlink', //取消链接
'insertrow', //前插入行
'insertcol', //前插入列
'mergeright', //右合并单元格
'mergedown', //下合并单元格
'deleterow', //删除行
'deletecol', //删除列
'splittorows', //拆分成行
'splittocols', //拆分成列
'splittocells', //完全拆分单元格
'deletecaption', //删除表格标题
'inserttitle', //插入标题
'mergecells', //合并多个单元格
'deletetable', //删除表格
'cleardoc', //清空文档
'insertparagraphbeforetable', //"表格前插入行"
'insertcode', //代码语言
'fontfamily', //字体
'fontsize', //字号
'paragraph', //段落格式
'simpleupload', //单图上传
'insertimage', //多图上传
'edittable', //表格属性
'edittd', //单元格属性
'link', //超链接
'emotion', //表情
'spechars', //特殊字符
'searchreplace', //查询替换
'map', //Baidu地图
'gmap', //Google地图
'insertvideo', //视频
'help', //帮助
'justifyleft', //居左对齐
'justifyright', //居右对齐
'justifycenter', //居中对齐
'justifyjustify', //两端对齐
'forecolor', //字体颜色
'backcolor', //背景色
'insertorderedlist', //有序列表
'insertunorderedlist', //无序列表
'fullscreen', //全屏
'directionalityltr', //从左向右输入
'directionalityrtl', //从右向左输入
'rowspacingtop', //段前距
'rowspacingbottom', //段后距
'pagebreak', //分页
'insertframe', //插入Iframe
'imagenone', //默认
'imageleft', //左浮动
'imageright', //右浮动
'attachment', //附件
'imagecenter', //居中
'wordimage', //图片转存
'lineheight', //行间距
'edittip ', //编辑提示
'customstyle', //自定义标题
'autotypeset', //自动排版
'webapp', //百度应用
'touppercase', //字母大写
'tolowercase', //字母小写
'background', //背景
'template', //模板
'scrawl', //涂鸦
'music', //音乐
'inserttable', //插入表格
'drafts', // 从草稿箱加载
'charts', // 图表
]
]
Run code
Cut to clipboard
备注:
我配置的时候配置key使用的是toolbar,
很多博文使用的是toolbars,但是我使用toolbars不起作用,
不知道是不是ueditor的版本问题。
<!-- 加载编辑器的容器 --> <script id="editor" type="text/plain" name="content"> ${info.content} //在这里输入编辑器的初始内容。 </script>
<!-- 创建编辑器并设置属性 -->
<script type="text/javascript">
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
//相见文档配置属于你自己的编译器 var ue = UE.getEditor('editor', {
initialFrameHeight: 300,
initialFrameWeight: 100
});
</script>Run code
Cut to clipboard
文章:百度Ueditor编辑器宽度高度自适应 发表时间:2021-08-17, 09:25:33
#259
作者:广西南宁市青秀区
tp6 hasOne belongTo区别
ThinkPHP5有关联模型的操作,
但有部分初学者对数据表中常见的几种表与表的关系还存在着问题,
所以使用不好关联查询。
这里将hasOne、hasMany、belongsTo进行一个详细举例说明。
首先,这3个的大致中文意思:
这里我们准备3张表来理解他们的关系:
user_group 用户分组表:id、title
user 用户表:id、user_group_id、username、password
profile 用户信息表:id、user_id、nickname、sex
1、user表需要关联user_group表,表示每一个 用户 需要知道该用户是 哪个用户分组的;
2、profile表 需要关联 用户表,表示该用户信息数据 是哪个用户的信息;
我们知道一个用户组下面可以有很多用户,
所以:user_group hasMany user;
一个用户 属于 一个用户组,
所以:user belongsTo user_group;
同样是user_group和user表,但我们出发点不同,关系也就不一样了。
每个用户都应该有唯一一条用户信息数据,
所以:user hasOne profile;
一条用户信息 属于 一个用户,
所以:profile belongsTo user
综上:
在User模型中,我们可以定义关联:
我们在查询中:
在UserGroup模型中,我们可以定义关联:
在Profile模型中,我们可以定义关联:
注:定义关联function的方法名可以随意定义,一般为表名或模型名;
我们定义的时候是function,但获取时理解为获取属性,所以不加();
很多人理解是我定义了一个profile的方法,
所以应该$user->profile(),这里要特别注意下。
这样我们在查询时,就方便了,不需要使用大量的join。
ThinkPHP5有关联模型的操作,
但有部分初学者对数据表中常见的几种表与表的关系还存在着问题,
所以使用不好关联查询。
这里将hasOne、hasMany、belongsTo进行一个详细举例说明。
首先,这3个的大致中文意思:
hasOne:有一个,加上主谓语应该是 ,A 有一个 B
hasMany:有很多,A 有很多 B
belongsTo:属于, A 属于 BRun code
Cut to clipboard
这里我们准备3张表来理解他们的关系:
user_group 用户分组表:id、title
user 用户表:id、user_group_id、username、password
profile 用户信息表:id、user_id、nickname、sex
1、user表需要关联user_group表,表示每一个 用户 需要知道该用户是 哪个用户分组的;
2、profile表 需要关联 用户表,表示该用户信息数据 是哪个用户的信息;
我们知道一个用户组下面可以有很多用户,
所以:user_group hasMany user;
一个用户 属于 一个用户组,
所以:user belongsTo user_group;
同样是user_group和user表,但我们出发点不同,关系也就不一样了。
每个用户都应该有唯一一条用户信息数据,
所以:user hasOne profile;
一条用户信息 属于 一个用户,
所以:profile belongsTo user
综上:
在User模型中,我们可以定义关联:
function user_group(){
return $this->belongsTo('UserGroup');
}
function profile(){
return $this->hasOne('Profile');
}Run code
Cut to clipboard
我们在查询中:
$user = model('User')->find();
$user = $user->user_group; //这样user中就可以包含当前数据对应的user_grou数据了
$user = $user->profile;//这样user中就可以包含当前数据对应的profile数据了Run code
Cut to clipboard
在UserGroup模型中,我们可以定义关联:
function user(){
return $this->hasMany('User');
}Run code
Cut to clipboard
在Profile模型中,我们可以定义关联:
function user(){
return $this->belongsTo('User');
}Run code
Cut to clipboard
注:定义关联function的方法名可以随意定义,一般为表名或模型名;
我们定义的时候是function,但获取时理解为获取属性,所以不加();
很多人理解是我定义了一个profile的方法,
所以应该$user->profile(),这里要特别注意下。
这样我们在查询时,就方便了,不需要使用大量的join。
文章:thinkphp6 远程一对一 hansOneThrough 参数解释 发表时间:2021-08-06, 15:52:44
#260
作者:广西桂林市七星区
15tvah0u4izss #,广西桂林市七星区,2021-08-05,20:10:42, 绝地求生登录钥匙:9b7805dbc6b34ba1a03c031889a5a540
文章:常用html、demo代码 发表时间:2021-08-05, 19:57:11
#261
作者:广西南宁市
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<p onclick="ky();">跨域</p>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
</script>
<script>
function ky(){
$.ajax({
type: "POST",
url:'http://group.jxttest.com/v1/articles/catsLists',
error: function(request) {
console.log('失败:'+request);
},
success: function(data) {
console.log('成功:'+data);
}
});
}
</script>Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2021-08-02, 18:33:14
#262
作者:广西南宁市青秀区
Docker启动不了,提示 Docker failed to initialize
将 C:\Users\Administrator\AppData\Roaming 目录下Docker目录改名为Docker_backup(实际上就是删除并备份),
启动 Docker for windows.exe,提示docker没有启动,
点击启动docker一切恢复如初,原来的容器和镜像都在。
将 C:\Users\Administrator\AppData\Roaming 目录下Docker目录改名为Docker_backup(实际上就是删除并备份),
启动 Docker for windows.exe,提示docker没有启动,
点击启动docker一切恢复如初,原来的容器和镜像都在。
文章:Docker PHP 例子 发表时间:2021-07-23, 18:10:44
#263
作者:广西南宁市
Navicat导入sql数据
mysql 报错[Err] [Dtf] 1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'uploadtime' at row 9 With statement:......
搜索之后发现原来是因为 msyql5.7 及以上不允许时间戳字段插入 ‘0000-00-00’ 数据,
修复方法也比较简单,去掉sql_model 中的 NO_ZERO_DATE 配置即可
查看可以执行SQL

修改方法有好几个,
最简单的就是执行SQL
还有一个修改配置文件
保存退出后重启mysql #,广西南宁市,2021-07-21,17:28:26, mysql 高版本 sql_mode=only_full_group_by 问题解决方法
#,广西南宁市,2021-07-21,17:42:23, 完美解决方案
需修改mysql配置文件,
通过手动添加sql_mode的方式强制指定不需要ONLY_FULL_GROUP_BY属性,
my.cnf位于etc文件夹下,vim下光标移到最后,添加如下:
重启mysql服务
mysql 报错[Err] [Dtf] 1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'uploadtime' at row 9 With statement:......
搜索之后发现原来是因为 msyql5.7 及以上不允许时间戳字段插入 ‘0000-00-00’ 数据,
修复方法也比较简单,去掉sql_model 中的 NO_ZERO_DATE 配置即可
查看可以执行SQL
select @@global.sql_mode;Run code
Cut to clipboard
修改方法有好几个,
最简单的就是执行SQL
set @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';Run code
Cut to clipboard
还有一个修改配置文件
vim /etc/my.cf
//添加这条数据
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONRun code
Cut to clipboard
保存退出后重启mysql
set @@GLOBAL.sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;Run code
Cut to clipboard
需修改mysql配置文件,
通过手动添加sql_mode的方式强制指定不需要ONLY_FULL_GROUP_BY属性,
my.cnf位于etc文件夹下,vim下光标移到最后,添加如下:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONRun code
Cut to clipboard
重启mysql服务
文章:Docker PHP 例子 发表时间:2021-07-21, 17:20:12
#264
作者:广西南宁市
SQLSTATE[HY000] [2002] Connection refused
使用docker搭建lnmp环境,使用的是分容器的搭建方案
框架使用thinkphp,想要连接数据MySQL,一直显示“SQLSTATE[HY000] [2002] Connection refused”
数据库配置host填的是localhost,后面改成了127.0.0.1,都是连接不了
还以为是数据库用户权限问题,
新建了一个用户,刷新了权限,结果还是不行
想了好久,原来都是分容器的问题,
由于采用了分容器的搭建方案,
在php的容器内连接127.0.0.1或者localhost,肯定是连接不了数据库MySQL的
应该把数据库配置host填成MySQL容器名称,
我本地的MySQL容器名称为mysql,
改成这样就可以连接
<?php
return [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => 'mysql',
// 数据库名
'database' => 'jxt',
// 用户名
'username' => 'root',
// 密码
'password' => '123456',
// 端口
'hostport' => '3306',Run code
Cut to clipboard
文章:Docker PHP 例子 发表时间:2021-07-21, 17:26:29
#265
作者:广西南宁市
宝塔 thinkPHP5 nginx 站点配置 伪静态
tp3.2 nginx 伪静态
#,广西南宁市,2021-07-21,17:22:50,
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}Run code
Cut to clipboard
tp3.2 nginx 伪静态
location / {
if (!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
#rewrite ^(.*)$ /index.php$1 break;
break;
}
}Run code
Cut to clipboard
server {
listen 80;
server_name tp tp.com tp.net tp.org www.tp.com www.tp.net www.tp.org;
root /www/root/develop/tp/Public;
charset UTF-8;
location / {
if (!-e $request_filename){
rewrite ^/(.*)$ /index.php?s=/$1 last;
}
index index.php;
}
include php;
include error;
}Run code
Cut to clipboard
文章:nginx docker 代理 发表时间:2021-07-21, 17:21:37
#266
作者:广西南宁市
Docker
进入数据库内部
,我这里数据库名为book
查看当前字符集
#,广西南宁市,2021-07-21,17:17:03, Mysql:[Err] 1292 - Incorrect datetime value: .date(Y-m-d h:i:s)...解决方案
解决方法:
修改my.ini配置文件
my.ini中查找sql-mode
我的MySQL版本为Server version: 5.6.47 MySQL Community Server (GPL)
默认为:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
将STRICT_TRANS_TABLES,删掉保存重启mysql
如果版本高的话默认可能是:
sql_mode="STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER
将NO_ZERO_DATE,NO_ZERO_IN_DATE,删掉保存重启mysql即可
进入数据库内部
mysql -u root -p bookRun code
Cut to clipboard
查看当前字符集
show variables like '%character%';Run code
Cut to clipboard
解决方法:
修改my.ini配置文件
my.ini中查找sql-mode
我的MySQL版本为Server version: 5.6.47 MySQL Community Server (GPL)
默认为:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
将STRICT_TRANS_TABLES,删掉保存重启mysql
如果版本高的话默认可能是:
sql_mode="STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER
将NO_ZERO_DATE,NO_ZERO_IN_DATE,删掉保存重启mysql即可
文章:Docker PHP 例子 发表时间:2021-07-21, 17:14:43
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>内容预览</title> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="viewport" content="initial-scale=1, maximum-scale=1"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> </head> <body class="docs-home" ontouchstart=""> <style type="text/css"> @media (min-width: 850px){ .docs-home .phone{ /*margin: 0px 0px;*/ margin: 10px auto !important; } .phone:before { content: ''; width: 60px; height: 10px; border-radius: 10px; position: absolute; left:50%; margin-left: -30px; background:#333; top: 50px; } .phone .statusbar { position: absolute; width: 320px; height: 20px; background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAAoCAIAAADhf9zeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REEyN0EzRUU1QzM3MTFFNEE1ODA5RkNEOEU4MEU4ODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REEyN0EzRUY1QzM3MTFFNEE1ODA5RkNEOEU4MEU4ODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEQTI3QTNFQzVDMzcxMUU0QTU4MDlGQ0Q4RTgwRTg4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEQTI3QTNFRDVDMzcxMUU0QTU4MDlGQ0Q4RTgwRTg4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuHAU7gAAA6nSURBVHja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'); left: 50%; margin-left: -160px; top: 100px; -webkit-background-size: 100% auto; background-size: 100% auto; } .phone:after { content: ''; position: absolute; width: 60px; height: 60px; left: 50%; margin-left: -30px; bottom: 20px; border-radius: 100%; box-sizing: border-box; border: 5px solid #333; } } .phone{ background: #111; border-radius: 0px; box-shadow: none; width: 100%; height: 568px; padding: 0; } .docs-home.mui-ios .phone .statusbar,.docs-home.mui-android .phone .statusbar,.docs-home.mui-ios .phone:before,.docs-home.mui-ios .phone:after{ display: none; } .phone { margin: 0 auto; position: relative; background: #111; border-radius: 55px; box-shadow: 0px 0px 0px 2px #aaa; width: 320px; height: 568px; padding: 105px 25px; -webkit-box-sizing: content-box; box-sizing: content-box; } .phone iframe { width: 320px; height: 100%; display: block; width: 100%; margin-top: 20px; } </style> <div class="docs-header"> <div style="max-width:1024px;margin:0 auto;"> <div class="phone"> <iframe src="" frameborder="0" scrolling="yes" id="myframe"></iframe> <div class="statusbar"></div> </div> </div> </div> <script> document.getElementById("myframe").src=getQueryVariable('uf'); function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] == variable){return pair[1];} } return(false); } </script> </body> </html>