您的位置:首页 > 编程语言 > Python开发

python mysqldb使用小记

2017-09-11 10:27 204 查看
1.) MySQLdb模块

2。)MySQLdb._mysql

_mysql uses two classes:

connection

result

3.)db = MySQLdb.connect(host=”localhost”, user=”joebob”,

passwd=”moonpie”, db=”thangs”)

db = MySQLdb.connect("localhost", "joebobrd" , "moonpie","tangs")
connect的参数:
host,port,db ,user,passwd,charset


4.) [cursor name] = [connection object name].cursor()

cursor = mydb.cursor()

cursor.execute()

对象使用时,注意是默认开启事务的,
close()关闭
excute()执行语句,返回受影响的行数。
fetchone()执行查询语句时,获取查询结果集的第一行数据,返回一个元组
next()执行查询语句,获取当前行的下一行。
fetchall执行查询时,获取结果集的所有行,一行构成一个元组,
再讲这些元组装入一个元组返回。
scroll(value[,mode])将指针移动到某个位置
mode:表示移动的方式
mode的默认值为relative,表示基于当前行移动到value,value为
正则向下移动,为负则为向上移动。
mode为absolute,表示基于第一条数据的位置,第一条位置为0


5.) mydb.commit() #返回值为None

mydb.close() #

6.)可以同时开启多个连接:

7.)cur = mydb.cursor

result_select_1 = cur.execute(“select * from test”)

#command = cur.execute("""SELECT * FROM menu WHERE price > 7 """)


8.)command = cur.execute(“”“SELECT * FROM menu WHERE price > 7”“”)

results = command.fetchall()

9.)

conn = MySQLdb.connect()

sql = ‘select * from yufu;’

cur = conn.cursor()

cur.execute(sql)

print cur.fetchall()

#coding:utf-8

import sys

import MySQLdb

#import _mysql

try:

db = MySQLdb.connect(host=”localhost”, user=”root”,

passwd=”29700hx”, db=”learn”)

except Exception as e:

print e

cur = db.cursor()

result = cur.execute(“”“select * from yufu”“”)

print result

print “++++++++++++++++++++++++++++=”

result_xx = result.fetchall()

print “++++++++++++++++++++++++++++”

python参数化语句:

有sql注入的形式如下:

++++++++++++++++++++

name =’” or 1=1 #’

sql = ‘select * from menu where NAME=”%s”’%name

如果cur.execute(sql):

转变后的形式及输出:

select * from menu where NAME=”” or 1=1 #”

((4L, u’catfish’, 5.0), (2L, u’bass’, 6.75))

++++++++++++++++++++++++++++++++++++++++++++++++++++++

参数化语句如下:

name =[‘” or 1=1 #’] #需要列表形式。

sql = ‘select * from menu where NAME=”%s”’

#print sql

cur = mydb.cursor()

result =cur.execute(sql,name)

mysql like语句:

select * from menu where name like ‘zhangjiaqign%’;

select * from menu where name not like ‘zhangjiaqign%’;

常见的几种形式:

zhangjiaqing%

%zhangjiaqing

%zhangjiaqing%

%zhangjiaqing%hexian

_ :5个下划线,表示五个任意字符。

__%: 两下划线加% ,表示匹配的字符串至少为两个字符以上。

sys模块:

使用脚本带进来的参数:

name = sys.argv[1]

几种常见形式:

sys.argv
:

n =0: 值为脚本名(一般带绝对路径)

n>0: n为多少,就是第几个参数

sys.argv[n:]:python中list的特性,在这里都可以使用。

mysql insert语句:

insert into hexian(name) select NAME from menu;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python