「Ace Admin」

ACE是网站管理后台的模板.
项目主页
https://wrapbootstrap.com/theme/ace-responsive-admin-template-WB0B30DGR
源码地址
https://github.com/bopoda/ace
演示地址
http://ace.jeka.by/
其他模板
https://wrapbootstrap.com/themes
更新日志
03/02/2017 创建文章 06/03/2018 更新文章内容[……]

READ MORE

「DESTOON」- 杂记

DESTOON 7.0 UTF-8
允许浏览器访问手机端
Destoon b2b 7.0 PC端浏览器直接访问手机端地址的修改方法
打开 include/mobile.inc.php 文件,注释掉一下内容:

// if(is_pc() && strpos($DT_URL, ‘device.php’) === false) dheader(DT_PATH.’api/mobile.php?action=device&uri=’.urlencode($head_pc));

开启短信注册功能
手机短信功能开启教程
手机短信开启方法:进入网站后台 会员管理 => 模块设置 => 手机认证 => 开启 网站设置 => 云服务 => 手机短信 => 开启(V6.0及以上版本) 网站设置 => 基本设置 => 手机短信 => 开启(V5.0及以下版本)
点击申请按钮,登录官方后台,可以获取短信验证码相关的服务帐号与服务密钥
关闭提示:数据发送自未被信任的域名,如有疑问,请联系管理员
我的面板 => 安全中心 => 验证数据来源(关闭),用于检查 REFERER 参数
设置会员(个人、企业、VIP)功能
Destoon怎么给其它会员设置权限?
会员管理 => 会员组管理,测试可以设置不同会员组,并赋予不同的功能[……]

READ MORE

「DESTOON」- 添加新模块

之前复制过DESTOON的模块,时间久了就忘记了,正好群里有人在问,今天自己又碰到了,就把详细的过程记录下来,做个备忘,有同样需求的朋友也不用再四处找帖子了。
首先选择一个我们需要的模块(因为系统默认文章和信息模块是可以复制的,在这里我们只研究非默认的模块怎么复制),我选择的是模块名称是品牌,目录名是 brand,模块 ID 是 13,也可以根据需要选择要复制的模块。
第一步
复制根目录下的 brand 这个文件夹,粘贴然后重命名,这里我们用rename命名作为示范。于是根目录下多了一个名称为rename的文件夹,我们打开这个文件夹,找到config.inc.php这个文件,打开后里面是这样写的

<?php
$moduleid = 13;

把这里的13改成一个现在模块ID里没有的数字,我们用88代替它作为示范。
第二步
找到根目录下/module这个文件夹打开,复制里面的brand文件夹,粘贴后重命名为rename,打开这个新文件夹内的admin/config.inc.php这个文件,里面的文件是这样的(为方便理解,我加了注释)

<?php
defined(‘IN_DESTOON’) or exit(‘Access Denied’);
$MCFG[‘module’] = ‘brand’;//这里改为 ‘rename’;
$MCFG[‘name’] = ‘品牌’;//这里改为你的新模块名比如: ‘新模块’;
$MCFG[‘author’] = ‘Destoon.COM’;
$MCFG[‘homepage’] = ‘www.destoon.com’;
$MCFG[‘copy’] = false;//这里改为true;
$MCFG[‘uninstall’] = true;
$MCFG[‘moduleid’] = 13;//这里改为88;

$RT = array();
$RT[‘file’][‘index’] = ‘品牌管理’;
$RT[‘file’][‘html’] = ‘更新网页’;

$RT[‘action’][‘index’][‘add’] = ‘添加品牌’;
$RT[‘action’][‘index’][‘edit’] = ‘修改品牌’;
$RT[‘action’][‘index’][‘delete’] = ‘删除品牌’;
$RT[‘action’][‘index’][‘check’] = ‘审核品牌’;
$RT[‘action’][‘index’][‘expire’] = ‘过期品牌’;
$RT[‘action’][‘index’][‘reject’] = ‘未通过品牌’;
$RT[‘action’][‘index’][‘recycle’] = ‘回收站’;
$RT[[……]

READ MORE

「Phalcon」

Homepage: https://phalconphp.com/en/
更新日期:2020年09月11日 @IGNORECHANGE

To create the extension from C source follow these steps:

> git clone –depth=1 git://github.com/phalcon/cphalcon.git
> cd cphalcon/build
> ./install

Add the extension to your php.ini:

extension=phalcon.so

Finally, restart the webserver

Too Simple !!!

Demo
developer tools: https://docs.phalconphp.com/en/latest/reference/tools.html ;自动代码生成工具,用于生成代码的框架
example: https://docs.phalconphp.com/en/latest/reference/tutorial.html[……]

READ MORE

「PHP」- 模板引擎

Smarty
主页:https://www.smarty.net/ 文档:https://www.smarty.net/documentation[……]

READ MORE

「ThinkPHP3.2.2」

Error List
#1: 系统不支持:mysql
🙁 系统不支持:mysql 错误位置 FILE: /mnt/extra320g/www/quhongbao/ZPHP/Library/Think/Db/Driver/Mysql.class.php  LINE: 27
原因:不知道怎么办的时候就看源码。在Mysql.class.php LINE: 26,调用了 extension_loaded()。我检查了 PHP 的编译参数,结果只有 PDO的API。编译的时候未指定使用MySQL API。 解决:重新编译PHP,并指定参数–with-mysql选项。 更多细节,参考:PHP 中关于 MySQL 驱动与MySQL API[……]

READ MORE

「WorkerMan」

GatewayWorker框架文档:http://www.workerman.net/gatewaydoc/
上手很容易。
「WorkerMan Chat」
Homepage: http://www.workerman.net/workerman-chat
项目地址: https://github.com/walkor/workerman-chat[……]

READ MORE

「Yii1.1」

Yii1.1
Database
http://www.yiichina.com/doc/guide/1.1/database.overview
Active Record,http://www.yiichina.com/doc/guide/1.1/database.ar
Yii 2.0
Yii 2.0 权威指南:http://www.yiichina.com/doc/guide/2.0
Gii,http://www.yiichina.com/doc/guide/2.0/start-gii[……]

READ MORE

「Zephir」

an open source, high-level/domain specific language designed to ease the creation and maintainability of extensions for PHP with a focus on type and memory safety.
Docs: https://docs.zephir-lang.com/en/latest/index.html
Installation

https://docs.zephir-lang.com/en/latest/install.html
最好看以下 install 脚本,如果没有 sudo 命令,使用 install-nosudo,其实手动安装就行了;
这个安装还是比较简单的;

相关的IDE

Atom:

https://atom.io/packages/zephir-ide
https://github.com/nkt/zephir-ide

Sublime: https://github.com/phalcon/zephir-sublime

IntelliJ IDEA: https://plugins.jetbrains.com/idea/plugin/7558-zephir

Visual Studio: https://marketplace.visualstudio.com/items?itemName=TwentyChung.Zephir

Emacs:

Tutorial Or Demo

https://docs.zephir-lang.com/en/latest/tutorial.html

https://docs.zephir-lang.com/en/latest/tutorial.html#a-useful-class

Basic Syntax
基本语法
https://docs.zephir-lang.com/en/latest/language.html In this chapter, we’ll discuss the organization of files and namespaces, variable declarations, miscellaneous syntax conventions, and a few other concepts.
every file must contain a[……]

READ MORE

「PHP」- 编程相关的内容

本文及子页面整理了在PHP编程中遇到一些问题以及编程中的技巧。
判断是否为命令行执行
What is the canonical way to determine commandline vs. http execution of a PHP script?」

<?php

if (php_sapi_name() == “cli”) {
// In cli-mode
}

// If the PHP version is 4.2.0 or higher)
if (PHP_SAPI === ‘cli’) {
// In cli-mode
}[……]

READ MORE

「PHP」- 常用函数库

<?php

/**
* 移除地址名中的「市」或者「区」
* @param type $province
* @return string
*/
public static function removeAddressTail($address)
{

if (self::endsWith($address, “特别行政区”)) {

return mb_str_replace(“特别行政区”, “”, $address);
} elseif (self::endsWith($address, “自治区”)) {

return mb_str_replace(“自治区”, “”, $address);
} elseif (self::endsWith($address, “省”)) {

return mb_substr($address, 0, mb_strlen($address) – 1);
} elseif (self::endsWith($address, “市”)) {

return mb_substr($address, 0, mb_strlen($address) – 1);
}

return $address;
}

/**
* 检查$haystack是否以$needle开头
* @param string $haystack
* @param string $needle
* @return boolean
*/
private static function startsWith($haystack, $needle)
{
$length = mb_strlen($needle);
return (mb_substr($haystack, 0, $length) === $needle);
}

/**
* 检查字符串$haystack是否以$needle结尾
* @param string $haystack
* @param string $needle
* @return boolean
*/
private static function endsWith($haystack, $needle)
{
$length = mb_strlen($needle);

return $length === 0 ||
(mb_substr($haystack, -$length) === $needle);
}

/**
* var_export函数扩展,导出结果为方括号
* @param type $var
* @param t[……]

READ MORE

「PHP」- 常见错误汇总

#3 TODO PHP SESSION MEMCACHE
TODO 在PHP中,当session使用memcache存储时,如果memcache无法访问,则是什么状态。 -「Securing Session INI Settings」 -「Runtime Configuration」
#2 socket_sendto() Message too long
User Datagram Protocol IPv4
问题描述 socket_sendto(): unable to write to socket [90]: Message too long
问题原因: 单个 UDP 报文的数据最大程度为 65507 字节(受到 IPv4 数据包长度限制,65535 – 20(tcp header) – 8(udp header),使用 IPv6 可以发送更多的数据)
解决办法: 数据太长了,还能咋地。
#1 Unable to find the wrapper “https”
Unable to find the wrapper “https”; – did you forget to enable it when you configured PHP?
问题原因: 缺少openssl模块。
#0 lazy symbol binding failed: Symbol not found
-「PHP装memcache扩展引发的php-fpm崩溃的问题」 -「mac端安装memcache踩坑」
问题描述: dyld: lazy symbol binding failed: Symbol not found: _mmc_queue_free Referenced from: /gnu/lib/php/extensions/no-debug-non-zts-20131226/memcache.so Expected in: flat namespace
问题原因: 网上很多人遇到这个错误。emmmmm…因为大家使用的都是beta版本的memcache扩展,换成stable的就好了。
解决方案: 我是用了3.0.8版本的memcache扩展时,遇到了这个问题,memcache-3.0.8.tgz是Beta版的。
将memcache扩展换成stable版本的就好了,比如memcache-2.2.7.tgz版本。[……]

READ MORE

「Perl」

参考文献
Wikipedia / Perl: https://en.wikipedia.org/wiki/Perl

章节列表
「rename」[……]

READ MORE

「rename」

RENAME(1p) User Contributed Perl Documentation RENAME(1p)
NAME

rename – renames multiple files

SYNOPSIS

rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr [ files ]

DESCRIPTION

“rename” renames the filenames supplied according to the rule specified as the first argument. The perlexpr
argument is a Perl expression which is expected to modify the $_ string in Perl for at least some of the
filenames specified. If a given filename is not modified by the expression, it will not be renamed. If no
filenames are given on the command line, filenames will be read via standard input.

For example, to rename all files matching “*.bak” to strip the extension, you might say

rename ‘s/\e.bak$//’ *.bak

To translate uppercase names to lower, you’d use

rename ‘y/A-Z/a-z/’ *

OPTIONS

-v, -verbose

Verbose: print names of files successfully renamed.

-n, -nono

No action: print names of files to be renamed, but don’t rename.

-f, -force

Over write: allow existing files to be over-written.[……]

READ MORE

「REGULAR EXPRESSION」- 正则表达式

正则表达式是一种描述字符串结构模式的形式化的表达方法,具体讲指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。正则表达式使用一些基本的字符序列来描述所有的字符串结构。
正则表达式是按照一定的模板来匹配字符串的公式,由普通字符(例如字符a到z)和特殊字符组成。
历史由来
1)、美国新泽西州的Warren McCulloch和出生在美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出了一种用数学方式来描述神经网络的新方法,他们创造性地将神经系统中的神经元描述成了小而简单的自动控制元,从而作出了一项伟大的工作革新。
2)、在1956 年,出生在被马克·吐温(Mark Twain)称为“美国最美丽的城市之一”的哈特福德市的一位名叫Stephen Kleene的数学科学家,他在Warren McCulloch和Walter Pitts早期工作的基础之上,发表了一篇题目是《神经网事件的表示法》的论文,利用称之为“正则集合的数学符号”来描述此模型,引入了正则表达式的概念。正则表达式被作为用来描述其称之为“正则集的代数”的一种表达式,因而采用了“正则表达式”这个术语。
3)、之后一段时间,人们发现可以将这一工作成果应用于其他方面。Ken Thompson就把这一成果应用于计算搜索算法的一些早期研究,Ken Thompson是Unix的主要发明人,也就是大名鼎鼎的Unix之父。Unix之父将此符号系统引入编辑器QED,正则表达式的第一个实用应用程序即为Unix中的qed编辑器,然后是Unix上的编辑器ed,并最终引入grep。
4)、自此以后,正则表达式被广泛地应用到各种UNIX或类UNIX的工具中,如大家熟知的Perl。Perl的正则表达式源自于Henry Spencer编写的正则表达式,之后已演化成了PCRE(Perl Compatible Regular Expressions),PCRE是一个由Philip Hazel开发的、为很多现代工具所使用的库。
实际应用
正则表达式更侧重于文本处理,正则表达式一般具有以下功能: 1)检查字符串中符合某个规则的子字符串,并可以获取该子字符串。 2)根据匹配规则对字符串进行替换操作。 正则表达式有三类主要应用: (1)测试字符串是否匹配某个模式。例如,可以输入一个字符串进行测试看该字符串中是否存在一个电话号码模式或者一个信用卡模式,这成为数据的有效性检验。 (2)替换匹配模式的文本。可以再文档中使用一个正则表达式来表示特定文字,然后可以将其全部删除或者替换成别的文字。 (3)提取匹配模式的文本。可以用来在文本或者输入字段中查找特定的文字。
正则表达式在实践中的应用: (1)偷懒。批量文本替换操作。 (2)爬虫。从抓取的网页中筛选出感兴[……]

READ MORE

「REGULAR EXPRESSION」- 快速入门

问题描述
本章节主要介绍了正则表达式的中的一些元字符及一些案例。对egrep命令中的元字符进行了简单的介绍。
语法结构
字符分类
普通字符,用于匹配的对象是普通字符本身,包括所有的大写和小写字母、数字、标点符号、某些特殊符号。 例如:a 匹配 abc 中的 a;10 匹配 10.113.25.155 中的 10,@ 匹配 xxx@xxx.com 中的 @;
特殊字符,其与普通字符配合,用以匹配复杂或特殊的字符串组合。 位于普通字符之前或之后用来限制或扩充普通字符的独立控制字符或占位符。 用来描述它前面的字符的重复使用方式。 限定一个完整的范围。
egrep
以grep中的egrep命令为例。在GNU/Linux中,grep命令用于从文本文件中匹配包含某个文本的行。而命令egrep只是对grep -E命令的简单包装,二者是等价的。所以,egrep命令也是用于从文本中检索出包含匹配正则字符串的行。egrep使用的是扩展正则表达式(关于扩展正则表达式后面会提到)。
如下命令:

# egrep ‘^(From|Subject):’ mail-file

上面的命令,该命令用于从邮件中匹配发件人以及邮件主题。其中,mail-file为要检查的文件名。^(From|Subject):为传递给egrep命令的正则表达式。而单引号是SHELL的要求的,与正则表达式无关,是为了防止正则表达式中的特殊字符被SHELL解析。
如上的^(From|Subject):,一个正则表达式是一个字符序列,这个字符序列中的字符分为两种(1)普通字符,(2)元字符。普通字符就对应了普通语言中的单词。比如,From就代表单词From,Subject就代表Subject。而元字符则对应着语法。比如,脱字(^)就是一个元字符,与其他字符结合起来,实现我们期望的功能。
多种流派
很多的编程语言都存在方言,比如LISP。正则表达式也存在不同的”流派“。
很多的工具使用”不同的正则表达式“来完成任务。这里”不同的正则表达式“指的是工具在支持的支持的元字符和其他特性方面的差异。比如,单词分界符号\<与\>,有些工具中并不支持这两个元字符,还有些工具中的这两个元字符具有不同的含义。我们称这个两个工具使用了不同流派的正则表达式。
流派这个词描述的是所有这些细微的实现规定。
由Perl开创的流派因为表能力及其强大而被人们熟知,后来很多的语言从中汲取思想,提供了自己的增则表示,然后给自己贴上了PCRE的标签(比如PHP、Java的大量正则包、Python、Tcl等等)。但各种语言在重要的方面也各有不同。而且Perl也在不断的演化发展。
像其他东西一样,总的局面越来越混乱,变得乱[……]

READ MORE

「REGULAR EXPRESSION」- Perl,正则表达式,扩展示例

问题描述
本章节的主要目的是通过一些示例,对正则表达式做进一步的介绍。我们会跳出egrep命令,使用其他工具来介绍正则表达式。
上一章节我们围绕了egrep命令对正则表达式进行了介绍。介绍了egrep中的正则元字符及使用方法,主要侧重的是使用egrep配合正则表达式进行文本查找。期间还提及了许多支持正则表达式的其他语言,比如PHP、JAVA、VB.NET、Perl。这些语言的对正则支持和操纵能力都远远强于egrep。本章我们将使用Perl语言进行示例的讲解。因为Perl语言对正则表达式的支持很完整,而且非常易于使用,可以让我们把精力都放在正则表达式本身上,而不需要太多的去关注语言的细节。
本章节中的示例涉及一些常见问题的处理。我们用日常问题的处理来演示正则表达式。
解决方案
本章中我们用Perl语言进行正则表达式的讲解。这里Perl语言只是讲解正则表达式的工具,并不会过多涉及Perl语言本身的内容,但是依旧需要对Perl语言进行简单额介绍。
Perl语言简单入门
Perl关于文本处理和正则表达式的许多概念来自于来个专业化的文本处理语言工具awk和sed。如果你用过这两个工具,你会发现Perl关于正则的概念及用法与sed和awk中的用法及其类似。Perl可以在很多的平台中应用,比如Windows、Linux、VMS、Unix、OS/2。Perl的文本处理能力极强,在文本处理中Perl是最常用的工具。接下来我们先简单的介绍以下Perl语言的语法。
先看一个简单的Perl程序示例:

$f = 30; # 变量赋值
$r = ($f * 2 / 5) + 34; # 进行计算
print “\$r is $r.\n”; # 打印结果

上面这段程序的运行结果是:「$r is 46.」。变量一般以美元符号($)开始。井号(#)开始的到行尾表示注释。变量能够出现在双引号包含的字符串中,如$r,这一点与SHELL、PHP等语言类似,但是JAVA中是不能这么做的。
Perl中也有类似与其他语言中的控制结构:

$f = 30; # 变量赋值
while ($f < 45)
{
$r = ($f * 2 / 5) + 34; # 进行计算
print “\$r is $r.\n”; # 打印结果
$f = $f + 5;
}

只要$f < 45为真,循环控制while就会一直执行。将上面的程序写入文件demo,然后从命令行运行它就会产生如下输出:

# perl -w demo
$r is 46.
$r is 48.
$r is 5[……]

READ MORE

「Ruby」

相关链接
国内镜像站点:RubyGems – Ruby China – https://gems.ruby-china.com

章节列表
「Ruby」- 访问Redis服务 「Ruby」- 运行环境安装[……]

READ MORE

「Ruby」- 运行环境安装

内容简介
本文将介绍如何在CentOS上如何安装Ruby的最新版本,以及如何安装多个版本,还有多版本切换等等相关的内容。
已测试环境

CentOS Linux release 7.4.1708 (Core)
成功

CentOS release 6.10 (Final)
成功

需求概述
在CentOS 7.4上的Ruby是2.0版本,太旧了,需要安装新的版本。
相关内容
使用RVM – Ruby Version Manager工具,可以安装多个版本的Ruby环境,并可以在多个版本之间进行切换。
#1 安装依赖

#!/bin/sh

# 卸载原由的RUBY包。一来旧版可能没有必要,而来由于环境变量PATH的原因,导致加载的还是旧版。
yum remove ruby*

yum install gcc-c++ patch readline readline-devel zlib zlib-devel \
libyaml-devel libffi-devel openssl-devel make \
bzip2 autoconf automake libtool bison iconv-devel sqlite-devel

#2 安装RVM工具

#!/bin/sh

# 导入证书
curl -sSL https://rvm.io/mpapis.asc | gpg2 –import –
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 –import –

# 安装RVM命令
curl -s -L get.rvm.io | bash -s stable

# 加载命令(或者重新登录)
source /etc/profile.d/rvm.sh
rvm reload

#3 检查依赖

#!/bin/sh

rvm requirements run

#4 安装Ruby环境并验证

#!/bin/sh

# 查看所有版本
rvm list known

# 安装特定版本
rvm install 2.6

# 查看所有已经安装的版本
rvm list

# 设置使用特定版本
rvm use 2.6 –default

# 验证当前版本
ruby –version

参考文献
How to Install Ruby on CentOS/RHEL 7/6[……]

READ MORE

「Ruby」- 访问Redis服务

访问 Redis 服务
GitHub/redis/redis-rb
使用 Ruby 连接 Redis 服务、集群等等。
安装类库

gem install redis

连接集群

require “redis”

# Nodes can be passed to the client as an array of connection URLs.
nodes = (7000..7005).map { |port| “redis://127.0.0.1:#{port}” }
redis = Redis.new(cluster: nodes)

redis.set “foo” 7

redis.get “foo”[……]

READ MORE

「SQL」- Structured Query Language

[……]

READ MORE

「MySQL」- 概念术语

外键约束

################# 准备

  create table t_group (
   id int not null,
   name varchar(30),
   primary key (id)
);
并插入两条记录
  insert into t_group values (1, ‘Group1’);
insert into t_group values (2, ‘Group2’);

################ 演示

(三种外键约束模式)

1、级联(cascade)方式:(从表中的列也会删除)

  级联方式
  create table t_user (
   d int not null,
   name varchar(30),
   groupid int,
   primary key (id),
   foreign key (groupid) references t_group(id) on delete cascade on update cascade
  );
  参照完整性测试:(从表中的外键必须在主表中存在)
  insert into t_user values (1, ‘qianxin’, 1); #可以插入
  insert into t_user values (2, ‘yiyu’, 2); #可以插入
insert into t_user values (3, ‘dai’, 3); #错误,无法插入,外键3不存在,与参照完整性约束不符

  约束方式测试
  insert into t_user values (1, ‘qianxin’, 1);
  insert into t_user values (2, ‘yiyu’, 2);
  insert into t_user values (3, ‘dai’, 2);
  delete from t_group where id=2; #导致t_user中的2、3记录级联删除
  update t_group set id=2 where id=1; #导致t_user中的1记录的groupid级联修改为2

2、置空(set null)方式(主表中的记录被删除,从表则会被设置为null)

  置空方式
  create table t_user (
   id int not null,
   name varchar(30),
   groupid int,
   primary key (id),
   foreign key (groupid) references t_group(id) on delete set null on update set null
  );
参[……]

READ MORE

「MySQL」- 快速开始与入门学习

章节列表
「MySQL」- 用户账户管理 「EXPLAIN | DESCRIBE」 「CONNECTION CONTROL FAILED LOGIN ATTEMPTS」 「SHOW DATABASES Syntax」 「CREATE DATABASE Syntax」 「DESCRIBE Syntax」[……]

READ MORE

「MySQL」- 日期时间类型

对于DATE和DATETIME范围说明,“supported”表示尽管较早的值可能正常工作,但不能保证。

类型
大小(B)
范围
显示格式
用途

YEAR[(4)]
1
0000,1901 ~ 2155
YYYY
年份值

TIME[(fsp)]
3
-838:59:59 ~ 838:59:59
HH:MM:SS[.fraction]
时间值或持续时间。允许使用字符串或数字将值进行插入。

TIMESTAMP[(fsp)]
4
UTC: 1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999
YYYYMMDD HHMMSS
混合日期和时间值,时间戳

DATETIME[(fsp)]
8
1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999
YYYY-MM-DD HH:MM:SS[.fraction]
混合日期和时间值。允许使用字符串或数字将值进行插入。

DATE
4
1000-01-01 ~ 9999-12-31
YYYY-MM-DD
日期值。允许使用字符串或数字将值进行插入。

在MySQL中,TIME、DATETIME、TIMESTAMP支持小数秒,精度可以高达微秒(6位)。
关于fsp 要定义包含小数秒的列,使用语法type_name(fsp),其中type_name为TIME,DATETIME或TIMESTAMP,fsp为小数秒精度。fsp值(如果给出了)必须在0到6之间。值为0表示没有小数部分。如果省略,默认精度为0.(与标准SQL默认值6不同,用于于以前的MySQL版本兼容)。
表中的任何TIMESTAMP或DATETIME列都可以具有自动初始化和更新属性。可以使用DEFAULT和ON UPDATE子句指定自动初始化和更新到DATETIME列的当前日期和时间。
关于TIMESTAMP TIMESTAMP值存储为自epoch(’1970-01-01 00:00:00’UTC)时代以来经过的秒数。 TIMESTAMP不能代表值“1970-01-01 00:00:00”,因为这相当于从时代开始的0秒,值0被保留以表示“0000-00-00 00:00:00”。[……]

READ MORE

「CONNECTION CONTROL FAILED LOGIN ATTEMPTS」

CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS与connection_control插件有关。该表已经添加到MySQL 5.7.17中。
此表提供的信息是关于失败连接的次数,每个客户端的user/host组合的连续失败连接尝试次数。
参考文献
MySQL Manual[……]

READ MORE

「MySQL」- Connectors

Connector,指连接 MySQL 数据库的类库,诸如 Connector/Python、Connector/Node.js、MySQL Native Driver for PHP 等等。
参考文献
MySQL Connectors[……]

READ MORE

「PostgreSQL」- SQL Statements(语句、语法)

问题描述
该笔记将记录: 与 PostgreSQL 的语法、编程,以及相关问题的解决方案。
解决方案
该部分的主要内容均来自于官方文档,但是提取出在各章节中我们关注的内容,让我们形成对 PostgreSQL 的整体认识。
该部分内容主要来自官方文档的以下章节,偏向于 PostgreSQL 的 SQL 语法及使用:
I)Tutorial
— 01)Getting Started — 02)The SQL Language — 03)Advanced Features
II)The SQL Language
— 04)SQL Syntax — 05)Data Definition — 06)Data Manipulation — 07)Queries — 08)Data Types — 09)Functions and Operators — 10)Type Conversion — 11)Indexes — 12)Full Text Search — 13)Concurrency Control — 14)Performance Tips — 15)Parallel Query
IV)Client Interfaces
— 34)libpq — C Library — 35)Large Objects — 36)ECPG — Embedded SQL in C — 37)The Information Schema
V)Server Programming
— 38)Extending SQL — 39)Triggers — 40)Event Triggers — 41)The Rule System — 42)Procedural Languages — 43)PL/pgSQL — SQL Procedural Language — 44)PL/Tcl — Tcl Procedural Language — 45)PL/Perl — Perl Procedural Language — 46)PL/Python — Python Procedural Language — 47)Server Programming Interface — 48)Background Worker Processes — 49)Logical Decoding — 50)Replication Progress Tracking
VI)Reference
— I)SQL Commands — II)PostgreSQL Client Applications — III)PostgreSQL Server Applicat[……]

READ MORE

「PostgreSQL」- 概念术语

[……]

READ MORE

「PostgreSQL」- 快速入门

问题描述
该笔记将记录:PostgreSQL 的基本使用方法,以及常见问题的解决办法。
数据库:连接与创建

### 切到到用户,
shell> su – postgres # 通过该用户连接,其是服务运行的默认用户

### 创建数据库
shell> createdb mydb

### 删除数据库
shell> dropdb mydb

### 访问数据库
shell> psql mydb
psql (14.4)
Type “help” for help.
mydb=> # 提示符,暗示当前为普通用户
mydb=# # 提示符,暗示当前为超级用户,不受管控
# 通常为安装用户来连接数据库

mydb=> SELECT version();
mydb=> SELECT current_date;
mydb=> \h
mydb=> \q

表:创建及常用操作
PostgreSQL: Documentation: 14: 2.3. Creating a New Table

CREATE TABLE weather (
city varchar(80),
temp_lo int, — low temperature
temp_hi int, — high temperature
prcp real, — precipitation
date date
);

DROP TABLE tablename;

// —————————————————————————- // 增

INSERT INTO cities VALUES (‘San Francisco’, ‘(-194.0, 53.0)[……]

READ MORE

「TOML」- Tom’s Obvious, Minimal Language

参考文献
Wikipedia/TOML[……]

READ MORE