标签: pymysql

Pymysql Insert Into无法正常工作

我在Eclipse中从PyDev运行它...

import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='userid', passwd='password', db='fan')
cur = conn.cursor()
print "writing to db"
cur.execute("INSERT INTO cbs_transactions(leagueID) VALUES ('test val')")
print "wrote to db"
Run Code Online (Sandbox Code Playgroud)

结果是,在控制台顶部显示C:... test.py,并在控制台中:

写入db写入db

所以它不会在执行命令之后终止.但是当我在MySQL中查看表时,它是空的.没有插入记录.

首先,为什么不写这个记录.其次,如何查看日志或错误以查看发生的情况.如果代码失败,通常会出现某种红色错误.

python mysql eclipse python-2.7 pymysql

52
推荐指数
2
解决办法
5万
查看次数

什么是PyMySQL,它与MySQLdb有什么不同?它会影响Django部署吗?

我刚刚使用PyMySQL而不是MySQLdb解决了我的Django 1.3应用程序中的一些问题.我按照本教程介绍了如何进行切换:http://web-eng-help.blogspot.com/2010/09/install-mysql-5-for-python-26-and.html

现在我想知道PyMySQL究竟是什么以及它与MySQLdb的不同之处.

我在localhost上使用它,然后将其上传到某个主机.

是否可以在localhost上使用PyMySQL并托管它们提供的任何内容?由于我已将base.py和introspection.py中的"MySQLdb"更改为"PyMySQL",我是否需要在更改这些文件后将其上传到服务器?或者因为它是Django的文件,因为Django已经上传到那里,这不是很重要吗?

python mysql django mysql-python pymysql

41
推荐指数
3
解决办法
5万
查看次数

没有名为'pymysql'的模块

我正在尝试在Ubuntu上使用PyMySQL.

我已经安装了pymysql两个pip,pip3但每次使用import pymysql时都会返回ImportError: No module named 'pymysql'

我正在使用Ubuntu 15.10 64位和Python 3.5.

同样的.py可以在Windows上使用Python 3.5,但不适用于Ubuntu.

python ubuntu python-3.x pymysql

37
推荐指数
6
解决办法
8万
查看次数

使用python将mysql查询写入csv,需要显示字段名称

我有以下内容:

import MySQLdb as dbapi
import sys
import csv

dbServer='localhost'
dbPass='supersecretpassword'
dbSchema='dbTest'
dbUser='root'

dbQuery='SELECT * FROM pbTest.Orders;'

db=dbapi.connect(host=dbServer,user=dbUser,passwd=dbPass)
cur=db.cursor()
cur.execute(dbQuery)
result=cur.fetchall()

c = csv.writer(open("temp.csv","wb"))
c.writerow(result)
Run Code Online (Sandbox Code Playgroud)

这会产生乱码.我熟悉使用打印记录[0]等.不知道我应该如何设置格式.产生类似查询在控制台中的内容.我不能从mysql服务器做一个简单的INTO OUTFILE.

python mysql csv mariadb pymysql

33
推荐指数
5
解决办法
5万
查看次数

pyMySQL设置连接字符集

我正在使用Flask和MySQL开发一个相当简单的Web应用程序.

我正在努力与unicode.用户有时会粘贴他们从Word复制的东西,并且它会被旧的智能引号所覆盖u'\u201c'.

一点点的调查表明我与MySQL的连接正在使用Latin1charset(似乎是默认值).

如何指定使用unicode进行连接?

我正在使用pyMySQL,它声称是MySQLdb的替代品.MySQLdb定义了一个对象的set_character_set(self, charset)函数connection,但pyMySQL没有(如果我尝试,我会收到错误).

python mysql unicode pymysql

17
推荐指数
1
解决办法
2万
查看次数

Python3 mysqlclient-1.3.6(又名PyMySQL)用法?

我还在学习python以及使用第三方模块的所有不同方法.我已经安装了https://pypi.python.org/pypi/mysqlclient,这里推荐Python 3和MySQL

我相信我正确安装了包

D:\install\python modules>python -m pip install mysqlclient-1.3.6-cp34-none-win_amd64.whl
Unpacking d:\install\python modules\mysqlclient-1.3.6-cp34-none-win_amd64.whl
Installing collected packages: mysqlclient
Successfully installed mysqlclient
Cleaning up...
Run Code Online (Sandbox Code Playgroud)

奇怪的是当我尝试导入模块mysqlclient时,我得到以下内容

D:\install\python modules>python
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:16:31) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysqlclient
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'mysqlclient'
Run Code Online (Sandbox Code Playgroud)

我检查了主页https://github.com/PyMySQL/mysqlclient-python,我找不到任何关于如何使用这个模块的例子.我很困惑,我刚刚错过了这里的船吗?

mysql python-3.x pymysql

17
推荐指数
1
解决办法
2万
查看次数

如何使用pymysql作为驱动程序配置Django?

我是Django的新手.整个下午我都没有配置MySQL引擎.我对数据库引擎和数据库驱动程序非常困惑.是发动机也是司机?所有教程都说ENGINE应该是'django.db.backends.mysql',但是ENGINE如何决定使用哪个驱动程序连接MySQL?

每次它都说"django.db.backends.mysql",遗憾的是我无法安装MySQLDb和mysqlclient,但是已经安装了PyMysql和官方的mysql连接器2.1.3.我怎么能将驱动程序设置为PyMysql或mysql连接器?

非常感谢!

  • 操作系统:OS X Al Capitan
  • Python:3.5
  • Django:1.9

这个问题还没有解决:引擎也是驱动程序吗?

python mysql django pymysql

17
推荐指数
1
解决办法
1万
查看次数

pymysql.connect 引发“TypeError:__init__() 采用 1 个位置参数,但给出了 5 个”

这是我建立数据库连接的 Python 代码。但我的代码中出现类型错误。有什么问题吗?

import pymysql

connnection = pymysql.connect("localhost", "root", "", "dbname")
Run Code Online (Sandbox Code Playgroud)

错误:

import pymysql

connnection = pymysql.connect("localhost", "root", "", "dbname")
Run Code Online (Sandbox Code Playgroud)

python pymysql

15
推荐指数
2
解决办法
2万
查看次数

使用SQLAlchemy和pymysql,如何设置连接以使用utf8mb4?

我发现(艰难的方式)MySQL的UTF8字符集只有3个字节.一些研究表明,我可以通过更改表来利用utf8mb4排序规则来解决这个问题,并获得UTF应该是完整的4个字节.

我已经这样做了.我的数据库,表格和列都已被ALTER编辑以利用此字符集.但是,如果我的数据的unicode代码点大于U + FFFF,我仍会收到此消息:

Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='"
Run Code Online (Sandbox Code Playgroud)

我发现我有以下设置:

> show variables like '%collation%';

collation_connection  utf8_general_ci
collation_database    utf8mb4_general_ci
collation_server      utf8mb4_general_ci
Run Code Online (Sandbox Code Playgroud)

collation_server是通过更改设置my.cnf.我的问题是,如何更改连接?我目前使用SQL Alchemy和pymysql连接到数据库,如下所示:

connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(DB_USER, DB_PASS, DB_HOST, DB_PORT, DATABASE)
engine = create_engine(connect_string, convert_unicode=True, echo=False)
session = sessionmaker()
session.configure(bind=engine)
Run Code Online (Sandbox Code Playgroud)

我能做些什么来改变从utf8_general_ciutf8mb4_general_ci通过SQL炼金术连接时?

python mysql sqlalchemy utf8mb4 pymysql

14
推荐指数
1
解决办法
1万
查看次数

如何使用pymysql将mySQL查询结果存储到pandas DataFrame中?

我正在尝试将mySQL查询结果存储在pandas DataFrame中,pymysql并且遇到构建数据帧的错误.在这里这里找到了类似的问题,但看起来有pymysql抛出特定的错误:

import pandas as pd
import datetime
import pymysql

# dummy values 
connection = pymysql.connect(user='username', password='password', databse='database_name', host='host')

start_date = datetime.datetime(2017,11,15)
end_date = datetime.datetime(2017,11,16)

try:
    with connection.cursor() as cursor:
    query = "SELECT * FROM orders WHERE date_time BETWEEN %s AND %s"

    cursor.execute(query, (start_date, end_date)) 

    df = pd.DataFrame(data=cursor.fetchall(), index = None, columns = cursor.keys())
finally:
    connection.close()
Run Code Online (Sandbox Code Playgroud)

收益: AttributeError: 'Cursor' object has no attribute 'keys'

如果我删除indexcolumns参数:

try:
    with connection.cursor() …
Run Code Online (Sandbox Code Playgroud)

python mysql pandas pymysql

13
推荐指数
1
解决办法
9896
查看次数