thinkphp3 执行原生sql

M()->query($sql);

 

thinkphp5执行原生sql

use think\Db;

Db:query($sql, [$param, ...]);

Db::execute($sql, [$param, ...]);

 

Thinkphp3

	public function coupon_list() {
    	$listRows = 12;
		$count = M('coupon')->count();
		//实例化分页类
		$page=new \Think\Page($count,$listRows);
		$page->setConfig('prev','上一页');
		$page->setConfig('next','下一页');
		$page->setConfig('first','首页');
		$page->setConfig('last','末页');
		$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');

		$sql = <<<EOF
select a.`id` as id, `money`, `min`, `shelf_days`, b.`title` as coupon_type, `created_at`
from coupon as a left join coupon_types as b
ON a.typeid = b.id
EOF;
		$p = intval(I('p'));
		if ($p < 1) {$p = 1;}
		$pageCount = ceil($count / $listRows);
		if ($p > $pageCount) {$p = $pageCount;}
		$sql .= sprintf(" LIMIT %d,%d", ($p-1)*$listRows, $listRows);
		// echo $sql; die;
		$list = M()->query($sql);

		// echo '<pre>'; var_dump($list); die;
    	$this->assign('couponList', $list);
    	$this->assign('page', $page->show());
        $this->display();
    }

前端模板页输出

<ul class="page">{$page}</ul>

Thinkphp5

use think\Db;
// ...  
  public static function getAccountByUid($uid) {
        $sql = "SELECT `account` from `5kcrm_admin_relation` where wk_uid=? limit 1";
        $res = Db::query($sql, [$uid]);
        if (count($res) > 0) {
            return $res[0]['account'];
        }
        return '';
    }


 

js测试整数:

function isInteger(obj) {
 return typeof obj === 'number' && obj%1 === 0
}

检查金额合法:

    function checkMoney(num) {
      return /^\d{1,7}(\.\d{0,2})?$/.test(num);
    }

 

mysql关键字:

ADD	ALL	ALTER
ANALYZE	AND	AS
ASC	ASENSITIVE	BEFORE
BETWEEN	BIGINT	BINARY
BLOB	BOTH	BY
CALL	CASCADE	CASE
CHANGE	CHAR	CHARACTER
CHECK	COLLATE	COLUMN
CONDITION	CONNECTION	CONSTRAINT
CONTINUE	CONVERT	CREATE
CROSS	CURRENT_DATE	CURRENT_TIME
CURRENT_TIMESTAMP	CURRENT_USER	CURSOR
DATABASE	DATABASES	DAY_HOUR
DAY_MICROSECOND	DAY_MINUTE	DAY_SECOND
DEC	DECIMAL	DECLARE
DEFAULT	DELAYED	DELETE
DESC	DESCRIBE	DETERMINISTIC
DISTINCT	DISTINCTROW	DIV
DOUBLE	DROP	DUAL
EACH	ELSE	ELSEIF
ENCLOSED	ESCAPED	EXISTS
EXIT	EXPLAIN	FALSE
FETCH	FLOAT	FLOAT4
FLOAT8	FOR	FORCE
FOREIGN	FROM	FULLTEXT
GOTO	GRANT	GROUP
HAVING	HIGH_PRIORITY	HOUR_MICROSECOND
HOUR_MINUTE	HOUR_SECOND	IF
IGNORE	IN	INDEX
INFILE	INNER	INOUT
INSENSITIVE	INSERT	INT
INT1	INT2	INT3
INT4	INT8	INTEGER
INTERVAL	INTO	IS
ITERATE	JOIN	KEY
KEYS	KILL	LABEL
LEADING	LEAVE	LEFT
LIKE	LIMIT	LINEAR
LINES	LOAD	LOCALTIME
LOCALTIMESTAMP	LOCK	LONG
LONGBLOB	LONGTEXT	LOOP
LOW_PRIORITY	MATCH	MEDIUMBLOB
MEDIUMINT	MEDIUMTEXT	MIDDLEINT
MINUTE_MICROSECOND	MINUTE_SECOND	MOD
MODIFIES	NATURAL	NOT
NO_WRITE_TO_BINLOG	NULL	NUMERIC
ON	OPTIMIZE	OPTION
OPTIONALLY	OR	ORDER
OUT	OUTER	OUTFILE
PRECISION	PRIMARY	PROCEDURE
PURGE	RAID0	RANGE
READ	READS	REAL
REFERENCES	REGEXP	RELEASE
RENAME	REPEAT	REPLACE
REQUIRE	RESTRICT	RETURN
REVOKE	RIGHT	RLIKE
SCHEMA	SCHEMAS	SECOND_MICROSECOND
SELECT	SENSITIVE	SEPARATOR
SET	SHOW	SMALLINT
SPATIAL	SPECIFIC	SQL
SQLEXCEPTION	SQLSTATE	SQLWARNING
SQL_BIG_RESULT	SQL_CALC_FOUND_ROWS	SQL_SMALL_RESULT
SSL	STARTING	STRAIGHT_JOIN
TABLE	TERMINATED	THEN
TINYBLOB	TINYINT	TINYTEXT
TO	TRAILING	TRIGGER
TRUE	UNDO	UNION
UNIQUE	UNLOCK	UNSIGNED
UPDATE	USAGE	USE
USING	UTC_DATE	UTC_TIME
UTC_TIMESTAMP	VALUES	VARBINARY
VARCHAR	VARCHARACTER	VARYING
WHEN	WHERE	WHILE
WITH	WRITE	X509
XOR	YEAR_MONTH	ZEROFILL