pymysql的使用心得(1)------小細節,注意!

最近一段時間開始使用MySQL,使用的是pymysql庫。mysql

其中遇到過一些小問題,值得記錄一下,以便從此使用的時候注意到。sql

  1. 表格的創建,代碼以下:
cursor.execute("create table %s(id char(100))" % tb_name)# 這樣寫可能報錯

  其中tb_name就是本身定的表格名稱,在使用過程當中發現,當表格名稱的字符串中帶有'-'的時候(如test-abc),會報錯,彷佛是'-'在MySQL代碼中有特殊意義因此讓程序誤覺得這是一個命令。一樣的,若是表格的名稱與代碼語句重複,例如表格名稱就叫作'table',也可能使程序報錯,所以能夠將表格的名稱用兩個`括起來(注意,這個點不是單引號,而是tab建上面的那個小撇)。blog

  修改代碼以下:字符串

cursor.execute("create table `%s`(id char(100))" % tb_name)

  2.信息的插入,代碼以下:table

cursor.execute(」insert into `%s`(id) values('%s')」 % (tb_name,data))# 這種可能出錯

  可是我發現,當須要插入的字符串data中含有'(單引號)的時候,程序就會報錯,這比較好理解,大概就是由於信息裏面的單引號和代碼的單引號造成了交叉,讓代碼變得混亂了,這種方式就只能儘可能讓代碼中可以區分單引號的,因此我使用了三引號和雙引號作區分。修改代碼以下:class

cursor.execute('''insert into `%s`(id) values("%s")''' % (tb_name,data))

  3.信息的錯誤test

  我設置了一個字段爲int,這個字段通常狀況下都是整數,可是也可能爲空值,因此一當這個值爲空的時候就報錯。程序

  目前的解決辦法是將這個字段改成char類型算了。其餘方法感受還不如留空。方法

相關文章
相關標籤/搜索