mysql函数

Linux下编译、安装php

戏子无情 提交于 2020-02-04 05:44:55
一、apache环境下php的安装步骤如下: 【 注意:编译安装php前,应先安装好apache,因为编译php时要用到apache的路径 】 1. 在http://www.php.net/downloads.php下载php源代码,并存至/usr/local/src下 2. 切换至/usr/local/src下,解压php源码,并切换至解压后的php目录下 3. ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --enable-mysqlnd 【配置时,可能会报错configure: error: xml2-config not found. Please check your libxml2 installation.--------解决方法: 需安装libxml2作为依赖(centos和ubuntu上安装libxml2的方式不太一样)】 4. make 5. make install 6. 配置http.conf,主要是整合php作为apache的模块出现(有时会自动帮我们配置好),在http.conf里加一句 AddType application/x-httpd-php .php 7. 复制php源码包中的 php.ini-development到指定目录(此处为:

DVWA-XSS(Stored)

此生再无相见时 提交于 2020-02-01 22:42:26
存储型 XSS 是指应用程序直接将攻击者提交的具有恶意代码存储到后台,在显示数据页面被 访问时恶意脚本在浏览器因 html 注入导致页面执行恶意代码从而被攻击者控制浏览器 Low 直接输入 1、查看服务器端源代码 <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $message = trim( $_POST[ 'mtxMessage' ] ); $name = trim( $_POST[ 'txtName' ] ); // Sanitize message input $message = stripslashes( $message ); $message = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $message ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : "")); //

mysql 数据库学习笔记一

拥有回忆 提交于 2020-02-01 16:31:09
一、navicat的引入: (第三方可视化的客户端,方便MySQL数据库的管理和维护)安装网址:https://www.navicat.com.cn/ NavicatTM是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。 Navicat 是闻名世界、广受全球各大企业、政府机构、教育机构所信赖,更是各界从业员每天必备的工作伙伴,被公认为全球最受欢迎的MySQL前端用户介面工具。它可以用来对本机或远程的 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 数据库进行管理及开发。 二、navicat工具的连接使用 1、选择需要连接的数据库类型 2、连接数据库:数据库地址,用户名称、用户密码 3、查询数据库 二、常见聚合函数:(组函数)在一个行的集合(一组行)上进行操作,对每个组给一个结果 常见聚合函数如下: 1、AVG:求平均值 2、COUNT:统计行 3、MIN / MAX:最小值、最大值 4 、SUM:求和 注意点: 1、每个组函数只接收一个参数 2、默认情况下,组函数忽略列值为null的行,不参与计算 3、可以用关键字distinc剔除字段值重复的条数 4

MySQL自动化(全量+增量)备份脚本

空扰寡人 提交于 2020-02-01 03:35:49
文章转自:http://www.it-hack.cn/forum.php?mod=viewthread&tid=220&extra=page%3D1 一、MySQL的日常备份方案: 全备+增量备份: 1、周日凌晨三点进行全备; 2、周一到周日增量备份。 不是往常的周日全备份,周一到周六增量备份,这样如果周日数据库在完全备份前出问题,恢复完成后,会少周日一天的数据量,所以七天增量备份,周日全备可以更好的保全数据。 这是备份周期演示表: Sun 3:00------Mon 3:00-----------------Tue 3:00----------Wed 3:00----------Thu 3:00----------Fri 3:00----------Sat 3:00----------Sun 3:00 (flush)Sun full---(flush)Sun->Mon binlog---(flush)Mon->Tue---(flush)Tue->Wed---(flush)Wed->Thu---(flush)Thu->Fri---(flush)Fri->Sat---(flush)Sun full---(flush)Sun->Mon binlog---(flush)Mon->Tue---(flush)Tue->Wed---(flush)Wed->Thu---(flush)Thu-

【MySQL必知必会】学习笔记Day4

与世无争的帅哥 提交于 2020-01-31 12:25:52
【MySQL必知必会】学习笔记Day4&1.24&D10章&P62-67页 基本概念 拼接 :将值联结到一起构成单个值。 Concat() :在MySQL的SELECT语句中,可使用 Concat()函数来拼接两个列。 Concat()拼接串,即把多个串连接起来形成一个较长的串 Concat()需要一个或多个指定的串,各个串之间用逗号分隔 RTrim() :通过删除数据右侧多余的空格来整理数据 别名 :一个字段或值的替换名,别名用AS关键字赋予 导出列 : 别名有时也称为导出列 8、创建计算字段 (1)计算字段 只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段。从客户机的角度来看,计算字段的数据是以与其他列的数据相同的方式返回的 (2)拼接字段 eg:vendors表包含供应商名和位置信息。假如要生成一个供应商报表, 需要在供应商的名字中按照name(location)这样的格式列出供应商的位置。 下面的SELECT语句连接以下4个元素: 存储在vend_name列中的名字; 包含一个空格和一个左圆括号的串; 存储在vend_country列中的国家; 包含一个右圆括号的串 SELECT Concat (vend_name, ' (' , vend_country ,')' ) FROM vendors ORDER BY vend_name; 注:

MYSQL配置参数优化详解

风流意气都作罢 提交于 2020-01-31 10:33:51
目录 1)连接请求的变量 1、max_connections 2、back_log 3、wait_timeout和interative_timeout 2)缓冲区变量 4、key_buffer_size 5、query_cache_size(查询缓存简称QC) 6、max_connect_errors: 7、sort_buffer_size: 8、max_allowed_packet=32M 9、join_buffer_size=2M 10、thread_cache_size=300 3)配置Innodb的几个变量 11、innodb_buffer_pool_size 12、innodb_flush_log_at_trx_commit 13、innodb_thread_concurrency=0 14、innodb_log_buffer_size 15、innodb_log_file_size=50M 16、innodb_log_files_in_group=3 17、read_buffer_size=1M 18、read_rnd_buffer_size=16M 19、bulk_insert_buffer_size=64M 20、binary log 参数汇总: MySQL参数优化对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成

【MySQL必知必会】学习笔记Day6

前提是你 提交于 2020-01-30 09:30:20
【MySQL必知必会】学习笔记Day6&1.28&D13章&P83-89页 11、分组数据 (1) 数据分组 分组允许把数据分为多个逻辑组,以 便能对每个组进行聚集计算 (2)创建分组 eg:计算每个供应商的产品数量 SELECT vend_id , COUNT(*) AS num_prods FROM products GROUP BY vend_id; 注: GROUP BY子句指示MySQL分组数据,然后对每个组而不是整个结果集进行聚集 GROUP BY子句可以包含任意数目的列,这使得能对分组进行嵌套 如果在GROUP BY子句中嵌套了分组,数据将在最后规定的分组上进行汇总 GROUP BY子句中列出的每个列都必须是检索列或有效的表达式 (但不能是聚集函数)。如果在SELECT中使用表达式,则必须在 GROUP BY子句中指定相同的表达式。不能使用别名。 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子 句中给出。 如果分组列中具有NULL值,则NULL将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。 GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前 SELECT vend_id , COUNT(*) AS num_prods FROM products GROUP BY vend_id WITH ROLLUP;

MySQL语句整理(二)

旧时模样 提交于 2020-01-30 00:56:34
数据库操作前的准备 -- 创建数据库 -- create database python_test_1 charset=utf8; -- 使用数据库 -- use python_test_1; -- students表 -- create table students( -- id int unsigned primary key auto_increment not null, -- name varchar(20) default '', -- age tinyint unsigned default 0, -- height decimal(5,2), -- gender enum('男','女','中性','保密') default '保密', -- cls_id int unsigned default 0, -- is_delete bit default 0 -- ); -- classes表 -- create table classes ( -- id int unsigned auto_increment primary key not null, -- name varchar(30) not null -- ); -- 查询 -- 查询所有字段 -- select * from 表名; select * from students; -- 查询指定字段 --

Mysql高级三 之 存储过程&函数

自闭症网瘾萝莉.ら 提交于 2020-01-29 20:33:11
Mysql高级三 之 存储过程和函数 1.存储过程和函数 1.1存储过程和函数概述 存储过程和函数是 事先经过编译并存储在数据库中的一段SQL语句的集合.调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务之间的传输,对于提高数据处理的效率是有好处的. 存储过程和函数的区别在于函数必须有返回值而存储过程没有. 函数:是一个返回值的过程 过程:是一个没有返回值的函数 1.2创建存储过程 CREATE PROCEDURE procedure_name ( [ proc_parameeter [ . . . ] ] ) begin -- SQL语句 end ; 示例: delimiter $ create procedure pro_test ( ) begin select 'Hello MySQL' ; end $ delimiter ; 结果: delimiter: 该关键字用来声明SQL语句的分隔符,告诉MySQL解释器,该段命令是否已经结束了,Mysql是否可以执行了. 默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,MySQL将会执行该命令. 1.3调用存储过程 CALL pro_test ; 结果: 1.4查看存储过程 -- 查看db_name数据库中的所有存储过程(这个存储在mysql 数据库下的

MySQL存储过程--(1)

穿精又带淫゛_ 提交于 2020-01-29 11:56:38
/* 参数模式: IN:该参数作为输入,该参数调用传入值 out:该参数作为输出,该参数作为返回值 INOUT:该参数即可作为输入,也可作为输出,该参数即可调用传入值,也可作为返回值 delimiter:设置结束标记,比如 //、$、# delimiter # */ 1、不带参数存储过程 delimiter // create procedure mies() BEGIN select * from student ; END // drop PROCEDURE mies(); call mies(); 2、带参数 in 存储过程 delimiter // /*传入参数,设置参数类型*/ create procedure mies(in sid int) BEGIN select * from student where sid=sno; END // drop PROCEDURE mies(); /*设置参数值*/ set @sid=20162010; call mies(@sid); /*登录用户名*/ delimiter // create procedure login(in sno int,in sname VARCHAR(16)) BEGIN declare result int DEFAULT 0;#声明并初始化 select COUNT(*) into result