seetings中#mysql的基本引數
sql_host = 'localhost'
sql_db_name = 'spider'
sql_sheetname = 'douban'
sql_user='root'
sql_password=''
pipelines中#建構函式用於初始化mysql的各項引數
def __init__(self):
host = sql_host
dbname =sql_db_name
ruser = sql_user
rpassword = sql_password
self.sheetname = sql_sheetname
#連線資料庫
self.conn = pymysql.connect(host=host, user=ruser, password=rpassword, db=dbname, charset='utf8')
# 建立乙個游標
self.cursor = self.conn.cursor()
#防止連線出現錯誤
def open_spider(self,spider):
try:
host = sql_host
dbname = sql_db_name
ruser = sql_user
rpassword = sql_password
self.sheetname = sql_sheetname
# 連線資料庫
self.conn = pymysql.connect(host=host, user=ruser, password=rpassword, db=dbname, charset='utf8')
# 建立乙個游標
self.cursor = self.conn.cursor()
except:
self.open_spider()
else:
spider.logger.info('mysql: connected')
self.cursor = self.conn.cursor(pymysql.cursors.dictcursor)
spider.cursor = self.cursor
def process_item(self, item, spider):
#item是從douban_spider裡傳出的資料
#先將資料轉換為字典形式
data = dict(item)
#mysql插入資料
keys = ','.join(data.keys())
values = ','.join(['%s'] * len(data))
sql = 'insert into () values()'.format(table=self.sheetname, keys=keys, values=values)
try:
self.cursor.execute(sql,tuple(data.values()))
self.conn.commit()
except:
self.conn.rollback()
#self.cursor.close()
#self.conn.close()
#mongodb插入資料
#self.post.insert(data)
return item
def close_spider(self,spider):
self.cursor.close()
self.conn.close()
注意 儲存中欄位不能叫describe,好像是python中的關鍵字,改為describes或其他
怎麼刪除mysql儲存 MySQL刪除儲存過程
當 mysql 資料庫中存在廢棄的儲存過程是,我們需要將它從資料庫中刪除。基本語法 儲存過程被建立後,儲存在資料庫伺服器上,直至被刪除。可以使用 drop procedure 語句刪除資料庫中已建立的儲存過程。語法格式如下 drop if exists 語法說明如下 1 過程名 指定要刪除的儲存過程...
mysql索引怎麼用 mysql怎麼使用索引?
在排序操作中如果能使用到索引來排序,那麼可以極大的提高排序的速度,要使用索引來排序需要滿足以下兩點即可。1 order by子句後的列順序要與組合索引的列順序一致,且所有排序列的排序方向 正序 倒序 需一致 2 所查詢的字段值需要包含在索引列中,及滿足覆蓋索引。通過例子來具體分析 在user tes...
mysql怎麼建儲存過程 mysql儲存過程怎麼寫
mysql 儲存過程是一些 sql 語句的集合,比如有的時候我們可能需要一大串的 sql 語句,或者說在編寫 sql 語句的過程中還需要設定一些變數的值,這個時候我們就完全有必要編寫乙個儲存過程。下面我們來介紹一下如何建立乙個儲存過程。語法格式 可以使用 create procedure 語句建立儲...