python 连接数据库的问题
import pymysqlDBHOST = 'localhost'
DBUSER = 'root'
DBPASS = 'root'
DBNAME = 'mysql'
try:
db = pymysql.connect(DBHOST='localhost', DBUSER='root', DBPASS='root', DBNAME='mysql')
print('数据库连接成功!')
except pymysql.Error as e:
print('数据库连接失败'+str(e))
报错内容为:
Traceback (most recent call last):
File "D:\ 爬虫实战\main.py", line 9, in <module>
db = pymysql.connect(DBHOST='localhost', DBUSER='root', DBPASS='root', DBNAME='mysql')
TypeError: __init__() got an unexpected keyword argument 'DBHOST'
请大佬指点!给大佬磕头了!!! 没用过 pymysql
你试试这个呢
>>> import MySQLdbas sql
>>> db = sql.connect("localhost", "root", "123456", "wpdata", charset='utf8' )
>>> cursor = db.cursor()
>>> sqltxt="select * from worda"
>>> cursor.execute(sqltxt)
7512
>>> db.commit()
>>> 这个pip install mysql 就可以 db = pymysql.connect(DBHOST='localhost', DBUSER='root', DBPASS='root', DBNAME='mysql')这里的参数错误
改成如下
db = pymysql.connect(host='localhost', user='root', password='root', database='mysql') connect的参数如下
host=None, user=None, password="",
database=None, port=0, unix_socket=None,
charset='', sql_mode=None,
read_default_file=None, conv=None, use_unicode=None,
client_flag=0, cursorclass=Cursor, init_command=None,
connect_timeout=10, ssl=None, read_default_group=None,
compress=None, named_pipe=None,
autocommit=False, db=None, passwd=None, local_infile=False,
max_allowed_packet=16*1024*1024, defer_connect=False,
auth_plugin_map=None, read_timeout=None, write_timeout=None,
bind_address=None, binary_prefix=False, program_name=None,
server_public_key=None 试试这个{:10_256:} 这报错很明显 没有DBHOST这个设置变量名称。
正确的connect用法可以见下文
这是我之前应用数据库的一个实际例子,供你参考:
import pymysql as mq
conn = mq.connect(
host='localhost',
port=3306,
user='root',
passwd='',
db='biaobai',
charset='utf8',
)
if(conn):
print('true')
cur=conn.cursor()
cur.execute("select * from love_comment")
row_1=cur.fetchone()
print(row_1)
row_2=cur.fetchmany(2)
print("------------------\n",row_2)
row_3=cur.fetchall()
print("------------------\n",row_3) #由于指针的下移,fetchall不在从头开始检索,而是指针处开始
commentor="1" #excute执行SQL语句的时候,必须使用参数化的方式,否则必然产生SQL注入漏洞。
effect_rows = cur.executemany("INSERT INTO `love_comment` ( `love_id`, `commentor`, `comment`) VALUES ( %s, %s, %s)",[(1,commentor,"jiayoupy`"),(1,commentor,"jiayoupy1")])
print("-----------------------\neffct_rows=",effect_rows)
new_id = cur.lastrowid
print("newid=",new_id)
cur.execute("select comment from love_comment where commentor='1'")
row=cur.fetchone()
print(row)
conn.commit()
cur.close()
conn.close()
页:
[1]