Python封装MySQL类

0x00 安装 有两种,一个是MySQLdb,一个是pymysql 下载MySQL-python然后安装 sudo pip install pymysql(推荐,因为py3已经不支持MySQLdb了) 0x01 简单表设计如下 insert into mysql.user(Host,User,Password) values('%','python','123456'); drop database if exists python; create database python; use python; drop table if exists msg; create table msg( id int not null auto_increment primary key, ip varchar(40) not null default '127.0.0.1' comment 'ip地址', domain varchar(100) not null default 'www.xx.com' comment '域名' ); grant all privileges on python.* to 'python'@'%' identified by '123456'; flush privileges; 0x02 MySQLdb封装代码 #!


MySQL的information_schema库

0x00 information_schema information_schema这个数据库中保存了MySQL服务器所有数据库的信息。 如数据库名,数据库的表,表栏的数据类型与访问权限等。 再简单点,这台MySQL服务器上,到底有哪些数据库、各个数据库有哪些表, 每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息都保存在information_schema里面。 information_schema的表schemata中的列schema_name记录了所有数据库的名字 information_schema的表tables中的列table_schema记录了所有数据库的名字 information_schema的表tables中的列table_name记录了所有数据库的表的名字 information_schema的表columns中的列table_schema记录了所有数据库的名字 information_schema的表columns中的列table_name记录了所有数据库的表的名字 information_schema的表columns中的列column_name记录了所有数据库的表的列的名字 0x01 information_schema的SCHEMATA表 0x02 information_schema的TABLES表 0x03 information_schema的COLUMNS表


PHP之封装MySQL类

0x00 config.inc.php内容如下 <?php return array( 'DB_HOST' => '192.168.188.134', 'DB_NAME' => 'scoreboard', 'DB_USER' => 'score', 'DB_PASS' => '123456', 'DB_CHARSET' => 'utf8', 'IS_LOG' => 1,//开启日志 'LOGFILEPATH' => '../log.txt'//日志路径 ); /* $database = require('./config.php'); echo $database['DB_TYPE']; //输出'DB_TYPE' */ ?> 0x01 表设计如下 create database scoreboard; use scoreboard; drop table if exists users; create table users( id int not null auto_increment primary key, gid int not null default 'xiaoming' comment '组id', username varchar(20) not null default 'xiaoming' comment '用户名', password varchar(32) not null default '123456' comment '密码', sex varchar(2) not null default '0' comment '性别', totalscore int not null default '0' comment '个人总积分' ); drop table if exists share; create table share( id int not null auto_increment primary key, uid int not null, content varchar(1024) not null default 'content' comment '分享内容', comment varchar(1024) comment '点评', date varchar(15) not null default '20150101' comment '分享日期' ); drop table if exists score; create table score( id int not null auto_increment primary key, uid int not null default '0' comment '用户id', score int not null default '0' comment '用户单次积分', ); grant all privileges on scoreboard.


PHP之MySQL常用函数

0x00 处理函数 mysql_connect(server,user,pwd,newlink,clientflag) 连接服务器的函数,成功则返回MySQL标识,失败则返回FALSE mysql_select_db(database,connection) 选择数据库的函数,成功则返回true,失败则返回false mysql_query(query,connection) 执行一条查询,返回一个资源标识符(结果集),如果查询执行不正确则返回FALSE mysql_num_rows(data)和mysql_num_fields(data) 函数分别返回结果集中行和列的数目(禁对SELECT语句有效),结果集从 mysql_query()的调用中得到 mysql_fetch_assoc(data) 从结果集中取得一行作为关联数组,若没有更多行则返回false mysql_fetch_row(data) 从结果集中取得一行作为索引数组,若没有更多行则返回false mysql_error(connection) 返回上一个MySQL函数的错误文本,如果没有出错则返回”(空字符串) mysql_affected_rows(link_identifier) 返回前一次MySQL操作(增删改)所影响的记录行数,失败则返回-1 mysql_insert_id(connection) 返回上一步INSERT操作产生的 ID。如果上一查询没有产生AUTO_INCREMENT的ID,则mysql_insert_id()返回 0。 mysql_data_seek(data,row) 结果集data从mysql_query()的调用中得到,行指针移动到指定的行号,接着调用 mysql_fetch_row() 将返回那一行。如果成功则返回 true,失败则返回 false 0x01 例子 <?php $server = "127.0.0.1"; $dbname = "massage"; $user = "msg"; $pass = "123456" $conn = mysql_connect($server,$user,$pass) or die('连接服务器失败:'.mysql_error()); mysql_query("set names 'utf8'");//设置数据库输出编码 mysql_select_db($dbname,$conn) or die(mysql_error($conn)); //选择数据库 $sql = "select username,password from user"; //构造sql语句 $result = mysql_query($sql); //执行sql语句,返回结果集 $num = mysql_num_rows($result);//返回执行结果的行数 echo "<br />结果的行数:{$num}<br />"; while ($row = mysql_fetch_assoc($result)) { echo $row[id].


MySQL语法

0x00 Select语句的一般语法 1.SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式> ]... 2.FROM <表名或视图名> [,<表名或视图名> ]... 3.[ WHERE <行条件表达式> ] 4.[ GROUP BY <列名1> ,[列名2][,...][HAVING组条件表达式] ] 5.[ ORDER BY <列名1> ,[ASC|DESC][,...] ]; 上面5个句子书写时按顺序,尽量一个句子一行,但在机器内部执行时的顺序是2-3-4-1-5, 即先确定从哪个数据源查找, 然后确定过滤条件, 若有分组则对过滤后的记录进行分组,若分组有限制条件则对分组进一步限制, 然后将符合条件的列查询出来, 最后对结果进行排序。 select name as '名字',password as '密码' form user; select * from message where id between 2 and 6; select * from message where title like '%留言_'; //%匹配任意个字符,_匹配一个字符 select * from message where uid in (2,3,4); //删除2、3、4共3条数据 0x01 连接查询 [<表名1>.


MySQL的增删改查

0x00 连接数据库 0x01 查看数据库 0x02 创建数据库 一般将sql语句保存在文本中,然后复制运行 create database test; use test; drop table if exists users; create table users( id int not null auto_increment primary key, username varchar(20) not null default 'xiaoming' comment '用户名', password varchar(32) not null default '123456' comment '密码' ); drop table if exists msg; create table msg( id int not null auto_increment primary key, uid int not null default '0' comment '用户id', title varchar(30) not null default 'title' comment '信息标题', content varchar(1024) not null default 'content' comment '信息内容', ip varchar(15) not null default '127.



可以返回顶部