MySQL-怎么知道一张表那个字段是必填的呢?

今天在开发ShopNC的功能的时候,需要插入商品表的信息,那么就有一个问题了,怎么知道这个表的字段是否必填呢?因为必填项我们没有传入数据的话,是会报错的喔。

好吧,用下面的办法就能获取必填项的信息了。

执行下面的SQL语句,然后,得到的字段清单都是必填项。

SELECT
COLUMN_NAME,COLUMN_DEFAULT,DATA_TYPE,CHARACTER_SET_NAME,COLUMN_KEY,COLUMN_TYPE,COLUMN_COMMENT
FROM `information_schema`.`COLUMNS`
WHERE TABLE_SCHEMA='ecstore' AND `TABLE_NAME` = 'sdb_b2c_orders' AND IS_NULLABLE='NO'
ORDER BY ORDINAL_POSITION ASC

快去试试看呗。

Linux-find:自动设置文件的所有人

网站程序在关键的地方有输出日志,日志文件以日期为文件名,每天一个,同时也开启了计划任务也会执行这个关键地方的代码,这就造成计划任务执行后新建日志文件后,所有者为root,结果,前台执行的时候就会发生错误,老是提示权限不足的问题(关键词Permission denied….)。

怎么办呢?老是这么提示也不是办法,那就使用定时任务,定时查询日志目录的文件权限。

# crontab -e

1 */1 * * * find /data2/ -type f -user root -exec chown www:www {} \;

然后保存,就会每小时执行一次。

如果时间不懂得设置的话,可以使用下面的工具协助设置:crontab执行时间计算

当然,你要是觉得这样子很麻烦的,其实,你还可以直接使用www账户登录设置计划任务的。

Node.js-云转码的使用日记

最近在用云转码作为上传视频的平台,然后测试代码出现点问题,就做个日记,以防忘记。

尝试不断更新,更新时间为:2017.12.13 18.49

1.上传错误:上传密钥错误!

原因:因为上传平台设置了上传的“上传密钥”。

解决:登录后台,系统设置,然后下面“上传密钥”复制一下密钥,然后打开“安装目录\work\public\upload\js\upload.js”找到里面的userId: “我是一串字符”,将“我是一串字符”替换成上面复制的就行。

吐槽:这个密钥设置等于没设置,这样子有意义?

2.上传之后完成,但是后台就是没看到文件

原因:设置了上传允许的域名了,需要开启

解决:登录后台,系统设置,然后下面“允许域名”将需要允许的填写进去就可以了,或者全部清空。

3.

jQuery-纠结的jquery validation插件

jQuery Validation Plugin

这两天在二开ShopNC B2B2C版本的时候需要弄到校验的功能,然后才发现这个插件真的很纠结。

最大的纠结是rules数组的key值到底是元素的ID还是元素的NAME。

一开始以为很简单就直接去官网查看了,然后发现没有直白的说是ID还是NAME呀!!!

好吧,也许是我自己不知道在哪里看吧,那最简单的就是测试一下呗,然后就知道了,原来是NAME选择器。

这边就记录一下吧。

rules : {
lv : {
required : true,
},
‘Go[]’ : {
required : true,
}
},

其中lv是radio元素的用法,Go是checkbox的用法

文件格式unix与dos转换,CRLF与LF的区别查看

这两天被一个客户的网站系统搞得很头痛的,开发的好好地不知道哪里错了,新建的文件都是不能正确执行的。

怎么检查代码都是不正确的,噢,文件是PHP的文件,经过调试,最终定位在凡是require_once进来的文件都是不会被初始化的。

奇怪的是,原先的程序代码是可以的,但是一旦修改了,就会出现空白的情况。

一直翻查程序文件都没问题。

终于在调试的过程不断的变换编码中发现一个问题:就是程序里面的代码会莫名其妙的成了“乱码”直接显示出来了。

好吧,引入今天的话题吧。

文件的格式虽然都叫做纯文本,但是他们的存储格式还是有不同的,比如这个文件格式就分unxi、dos、mac。

文件格式之外,存储的内容还有编码的区别,比如utf-8、ansi等的区别。

同一个编码还存在有BOM没有BOM的区别。

当然,还有CRLF与LF的区别,天呐,真的会疯了的。

我不就想要好好编个程嘛~

下面就是使用notepad++来查看这些内容的。

第一、文档格式

编辑、文档格式转换

  1. 转换为Windows格式
  2. 转换为UNIX格式
  3. 转换为MAC格式

当前的文档格式会成灰色。

VI操作:

set fileformat=[unix|dos]

这个决定下面换行符的行为模式。

第二、CRLF与LF的查看

视图、显示符号、显示全部字符

然后你会发现,全部的字符后面都增加了CRLF或者LF了,具体是根据你的文档格式来定的。

这个决定行与行之间是什么关系,比如本来应该单行注释一行,紧跟一行正确代码,然后这个不正确的话就变成了同一行了,然后文件就错了。而使用这些智能的编辑器,他显示是自动转换的,结果你是死活不知道原来他的处理已经并成一行了。

第三、存储的编码

编码、选择合适的编码

这个决定文件的字符是正常文字还是“乱码”。

这样子之后就正常了~