标签: mysql-python

如何使用Python中的MySQLdb检查插入是否成功?

我有这个代码:

cursor = conn.cursor()
cursor.execute(("insert into new_files (videos_id, filename, "
                "is_processing) values (%s,%s,1)"), (id, filename))
logging.warn("%d", cursor.rowcount)
if (cursor.rowcount == 1):
    logging.info("inserted values %d, %s", id, filename)
else:
    logging.warn("failed to insert values %d, %s", id, filename)
cursor.close()
Run Code Online (Sandbox Code Playgroud)

有趣的是,cursor.rowcount总是一个,即使我更新了我的数据库,以使videos_id一个独特的密钥.也就是说,插入失败,因为在我的测试videos_id中会出现同样的情况(当我检查数据库时,没有插入任何内容).但无论出于何种原因,rowcount它总是1 - 即使logging.warn我已经吐了rowcount1.

所以,问题是:如果插入正常,
我可以使用rowcount吗?如果是这样,我(大概)做错了什么?否则,我如何检查插入是否正常?

python mysql-python

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

Python MySQLdb迭代表

我有一个MSQL数据库,我需要遍历一个表并在满足WHERE子句后执行操作.然后一旦到达桌子的尽头,返回顶部并重新开始.

目前我有

cursor = database.cursor()    
cursor.execute("SELECT user_id FROM round WHERE state == -1 AND state = 2")  
round_id = cursor.fetchone()

if round != 5
   ...do stuff
Run Code Online (Sandbox Code Playgroud)

在循环中但这显然只是循环第一个条目.我想你需要使用for in函数来读取表格,但我不确定如何使用mysqldb完成这个操作?

python mysql mysql-python

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

为Django安装MySQL-python

我刚刚学会了如何使用virtualenv并安装了Django 1.4.5.我假设virtualenv创建了一个干净的平板供我使用,安装了Django 1.4.5,我将以前的所有文件复制到virtualenv环境中.

我试图运行服务器,但我得到一个错误说"no module named MySQLdb".我想这意味着我忘了安装MySQL-python.我尝试通过它安装它

    pip install MySQL-python
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误

    Downloading/unpacking MySQL-python
    Running setup.py egg_info for package MySQL-python
    The required version of distribute (>=0.6.28) is not available,
    and can't be installed while this script is running. Please
    install a more recent version first, using
    'easy_install -U distribute'.

    (Currently using distribute 0.6.24     (/home/bradford/Development/Django/django_1.4.5/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg))
    Complete output from command python setup.py egg_info:
    The required version of distribute (>=0.6.28) is not available,

    and can't be …
Run Code Online (Sandbox Code Playgroud)

django virtualenv mysql-python

13
推荐指数
3
解决办法
4万
查看次数

Python MySQLdb返回datetime.date和decimal

我有一个MySQL查询,如:

SELECT mydate, countryCode, qtySold from sales order mydate, countryCode
Run Code Online (Sandbox Code Playgroud)

这将返回元组的元组,其值如下:

((datetime.date(2011, 1, 3), 'PR', Decimal('1')), (datetime.date(2011, 1, 31), 'MX', Decimal('1')))
Run Code Online (Sandbox Code Playgroud)

当我尝试使用循环打印时,它打印完美:

2011-1-3, PR, 1
2011-1-31, MX, 1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试返回此值时,它返回为

datetime.date(2011, 1, 3), 'PR', Decimal('1')
Run Code Online (Sandbox Code Playgroud)

有没有办法可以获得普通数据,以便我可以将其传递给UI进行处理?通过正常数据我的意思是:

[['2011-1-03', 'PR', 1], ...]
Run Code Online (Sandbox Code Playgroud)

python mysql-python

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

OSX 10.8.2和BOTH上的MySQL 2.7 for Python 2.7是64位

这是我的问题:我无法获取MySQLdb for python工作.关于此的大多数其他帖子都引用了MySQL/Python的不同架构.我查了一下,他们都是64位.我有Python 2.7.2(标准OS X)和最新的MySQL,OS X 10.8.2.

我的原始错误日志:

试图导入My​​SQL数据库给我这个错误:

  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

这可能也有帮助,我安装mysql-python 1.2.4b4时控制台输出

xxx-MBP:MySQL-python-1.2.4b4 me$ sudo python setup.py clean
running clean
removing 'build/temp.macosx-10.8-intel-2.7' (and everything under it)
xxx-MBP:MySQL-python-1.2.4b4 me$ sudo python setup.py install
running install
running bdist_egg
running egg_info
writing MySQL_python.egg-info/PKG-INFO
writing top-level names to MySQL_python.egg-info/top_level.txt
writing dependency_links to …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-python

12
推荐指数
1
解决办法
5286
查看次数

Python MySQLdb执行表变量

我正在尝试将变量用于表名.我在第1行得到错误"......附近''myTable''我不能逃避这一点.错误中的双重'似乎是一个线索,但我不明白.

db = MySQLdb.connect("localhost","user","pw","database" )
table = "myTable"
def geno_order(db, table):
    cursor = db.cursor() # prepare a cursor object using cursor() method
    sql = "SELECT * FROM %s"
    cursor.execute(sql, table)
    results = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)

python mysql-python

12
推荐指数
1
解决办法
7004
查看次数

使用python MySQLdb连接纠正异常处理

我创建了一个小/基本的python脚本来将数据插入到MySQL数据库中.我包含了一些错误处理 - 主要是为了关闭连接和/或在出错时防止挂起连接(......但也忽略了一些错误).

我以为我拥有的东西(见下文)是对的 - 似乎工作正常.但偶尔我会得到"连接太多"错误 - 我假设这意味着我实际上并没有正确关闭连接(或者错误处理可能不正确).

conn=MySQLdb.connect(host=####, user=####, passwd=####, db=####)
curs=conn.cursor()
try:
    curs.execute(sql)
    conn.commit()           

except MySQLdb.Error as e:
    if e[0]!= ###:
        raise

finally: 
    curs.close()    
    conn.close()
Run Code Online (Sandbox Code Playgroud)

(我也没试过finally:)

另一个(我认为重要的)是MySQL数据库使用InnoDB存储引擎.这是我第一次使用InnoDB引擎,也许MyISAM有一些与此相关的差异,我不知道(比如conn.commit(),但是出于错误)....这似乎是我所有的来源其他问题!

提前致谢

python error-handling innodb mysql-python

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

MySQLClient安装错误:"引发异常("错误的MySQL配置:也许https://bugs.mysql.com/bug.php?id"

我正在尝试将mysqlclient安装到我的Python 3.6中.最初我要安装的是MySQLdb,但是它说MySQLdb不适用于Python 3(仍然?).所以我切换到mysqlclient.

pip3 install mysqlclient
Run Code Online (Sandbox Code Playgroud)

但是,它给出了这个错误:

    Collecting mysqlclient
  Using cached https://files.pythonhosted.org/packages/ec/fd/83329b9d3e14f7344d1cb31f128e6dbba70c5975c9e57896815dbb1988ad/mysqlclient-1.3.13.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/h3/sff7td1d6pg5v5qsm5xf31q80000gn/T/pip-install-ki9z7ln9/mysqlclient/setup.py", line 18, in <module>
        metadata, options = get_config()
      File "/private/var/folders/h3/sff7td1d6pg5v5qsm5xf31q80000gn/T/pip-install-ki9z7ln9/mysqlclient/setup_posix.py", line 60, in get_config
        libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')]
      File "/private/var/folders/h3/sff7td1d6pg5v5qsm5xf31q80000gn/T/pip-install-ki9z7ln9/mysqlclient/setup_posix.py", line 60, in <listcomp>
        libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')]
      File "/private/var/folders/h3/sff7td1d6pg5v5qsm5xf31q80000gn/T/pip-install-ki9z7ln9/mysqlclient/setup_posix.py", line 13, in dequote
        raise Exception("Wrong MySQL configuration: …
Run Code Online (Sandbox Code Playgroud)

python mysql mysql-python

12
推荐指数
1
解决办法
4599
查看次数

“ sha256_password或caching_sha2_password需要加密”

美好的一天。希望你一切都好。有人可以帮我解决这个问题吗?

我是MySQL环境的新手。我正在尝试远程连接到MySQL数据库。我使用以下python代码,并收到此错误。

Print(e) = "cryptography is required for sha256_password or 
             caching_sha2_password"
Run Code Online (Sandbox Code Playgroud)

而且不知道如何解决错误。

import pymysql as db

HOST = "XXXXX.XXX.XX”
PORT = XXXX
USER = "my_username"
PASSWORD = "my_password”
DB = "db_name"

try:
    connection = db.Connection(host=HOST, port=PORT,user=USER,                 
    passwd=PASSWORD, db=DB)

    dbhandler = connection.cursor()
    dbhandler.execute("SELECT * from table_name")
    result = dbhandler.fetchall()
    for item in result:
        print (DB)
 except Exception as e:
    print(e)

finally:
    connection.close()
Run Code Online (Sandbox Code Playgroud)

python mysql cryptography mysql-python

11
推荐指数
7
解决办法
8634
查看次数

无法在 Mac 上安装 mysqlclient

我尝试在 mac 上的虚拟环境中安装 mysqlclient ,使用以下命令:

pip3 install mysqlclient
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Collecting mysqlclient
  Using cached https://files.pythonhosted.org/packages/a5/e1/e5f2b231c05dc51d9d87fa5066f90d1405345c54b14b0b11a1c859020f21/mysqlclient-2.0.1.tar.gz
Installing collected packages: mysqlclient
  Running setup.py install for mysqlclient ... error
    ERROR: Command errored out with exit status 1:
     command: /Users/josephestes/Development/apps/vmstracker/tutorial-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/9_/hr4rf2_914q_g933hy7z4n5h0000gn/T/pip-install-29km7sh3/mysqlclient/setup.py'"'"'; __file__='"'"'/private/var/folders/9_/hr4rf2_914q_g933hy7z4n5h0000gn/T/pip-install-29km7sh3/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/9_/hr4rf2_914q_g933hy7z4n5h0000gn/T/pip-record-0xkt41xv/install-record.txt --single-version-externally-managed --compile --install-headers /Users/josephestes/Development/apps/vmstracker/tutorial-env/include/site/python3.8/mysqlclient
         cwd: /private/var/folders/9_/hr4rf2_914q_g933hy7z4n5h0000gn/T/pip-install-29km7sh3/mysqlclient/
    Complete output (118 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.14.6-x86_64-3.8
    creating build/lib.macosx-10.14.6-x86_64-3.8/MySQLdb
    copying MySQLdb/__init__.py -> build/lib.macosx-10.14.6-x86_64-3.8/MySQLdb
    copying …
Run Code Online (Sandbox Code Playgroud)

python macos mysql-connector mysql-python

11
推荐指数
3
解决办法
3112
查看次数