问题标签 [mysql-connector-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
204 浏览

python - 为什么 mysql-connector 在 SQL 语句参数通过引用传递时首先返回 eof 行?

当调用函数时传递函数中 SQL 语句的参数时,mysql-connector 先返回 eof,然后返回 'columns' 行。这导致通过首先处理 eof 行来显示空结果。

以下代码有效并返回一行。但是,如果我在通过调用函数传递值时将 data = ('ABC','XYZ') 替换为 data = (symbol,exchangetr),则代码不起作用并返回一个空元组。

调试代码后,我意识到当我通过调用函数传递参数时,以下内容会从 MYSQL 服务器返回。

但是当我通过硬编码数据变量直接传递参数时,我从 MYSQL 服务器得到以下信息。

通过首先处理 EOF 行,mysql-connector 错误地导致显示零行。我是 python 的新手,mysql-connector 似乎存在一些微妙的问题。我的代码有什么问题?我们不能从外部将参数传递给 SQL 语句吗?请帮忙。

0 投票
1 回答
68 浏览

python - MySQL/Python——提交的更改没有出现在循环中

使用 MySQL 连接器/Python,我有一个循环,它每 2 秒检查一次值的变化。没有所有的肉,这里是循环(打印用于测试目的:

get_row 是一个简单的选择查询,它返回namedtuple fetchall(因此末尾的[0],它只会是一行)。

问题是一旦获得初始值,即使我更改它,它也会继续返回该值。例如,如果开始是“0”,即使我去管理员并更改它,即使我打开一个新终端并更改它并提交它,它也会继续打印“0”。我已经尝试将 query_cache_size 设置为 0,但仍然没有运气。我认为这是一个提交问题,但事实并非如此。如果我更改它并重新连接,我会看到更改,但我不确定为什么它在程序中不会更改。有什么想法吗?

编辑:如果它出现,是的,我正在关闭光标并在每次调用时抓取一个新光标。

0 投票
1 回答
5610 浏览

python - 在 Python 2.7 中使用带有 mysql.connector 的参数化查询

我使用 Python 2.7 并mysql.connector在 pyCharm 中运行

我需要使用此处此处所示的参数化查询

鉴于这些示例,下面似乎cursor.execute("SELECT * FROM automatedReports WHERE pythonFunctionName = %s", (function_name))应该可以工作。

但是,当我在 pyCharm 中编写此行时,我收到此错误:

在此处输入代码

检查说:

在此处输入图像描述

如果我运行代码,我会收到此错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '%s' 附近使用正确的语法

这是完整的代码:

我在这里做错了什么?这是旧语法吗?我不会这么认为...

请注意,如果我将值输入到查询字符串中,它一切正常,只是不会让我使用参数。

0 投票
2 回答
120 浏览

python - 使用 mysql python 模块更新 SQL 表

我正在尝试使用 python 的 mysql 连接器更新 SQL 表中单个单元格中的单个值。使用以下代码,我没有收到错误消息,但表也没有实际更新。我尝试更新的单元格的值有时为空,有时为 NULL,有时包含字符串。这是我的代码:

我究竟做错了什么?

编辑:感谢到目前为止的回复。我认为周围的代码没有任何功能问题(除了 SQL 注入漏洞之外,我已在此处和其他地方修复),因为我一直有效地使用不同的查询执行类似的代码。这是我现在的代码:

如果它是相关的,事实证明我试图插入的单元格被格式化为 VARCHAR(45)。当我在单元格上运行 SELECT 查询时,它会返回一个格式如下的名称:(u'James',)

如果我设置 change_to_value = "(u'James',)",我会收到以下错误消息:

mysql.connector.errors.ProgrammingError: 1064 (42000): 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 ''column1' = '(u\'James\',)' WHERE id = '1234'' 附近使用正确的语法

0 投票
1 回答
2917 浏览

python - 循环连接mysql

我必须连接到 mysql 服务器并永远获取一些数据

所以我有两种方式

1)连接mysql一会儿抓取数据

这工作得很好,但如果脚本由于 mysql 连接问题而崩溃,脚本会失败

2)在while中连接到mysql

两个代码都运行良好,但我的问题是哪个更好?!

0 投票
1 回答
675 浏览

python - 将 mysql.connector 导入 Azure Flask 项目

我正在尝试使用 mysql 连接部署一个 Flask Web 应用程序。这是我第一次使用 Azure,离开 Linux 后这一切似乎都令人困惑。

我的理解是,一个包含在requirements.txt包含所需的包中。当我从 Azure 构建默认的 Flask 应用程序时,文件如下所示:

Flask<1

在这个阶段,网站加载正常。

如果我再添加一行 https://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.1.14.tar.gz 根据这个答案https://stackoverflow.com/a/34489738/2697874

然后在我的views.py 文件中(这似乎与我的旧app.py 文件大致同义)我包括...import mysql.connector

然后我重新启动并重新加载我的网站...然后返回错误The page cannot be displayed because an internal server error has occurred.

错误日志会吐出大量的 html(提供错误日志的方式似乎很奇怪——所以我必须在这里遗漏一些东西)。当我保存到 html 并加载它时,我得到了这个......

在此处输入图像描述

如何在我的 Flask Web 应用程序中包含 mysql.connector 库?

0 投票
1 回答
972 浏览

python - mysql.connector.errors.ProgrammingError: 1083 (42000): 字段分隔符参数不是预期的

当我使用 Jupyter notebook (Python) 使用 mysql.connector 连接 MySQL 并将 csv 文件加载到数据库中时,创建游标后,我尝试了:

我收到错误消息“mysql.connector.errors.ProgrammingError: 1083 (42000): Field separator argument is not what is expected; check the manual”。

当我直接在 MySQL 中使用完全相同的 sql 查询来加载 csv 文件时,它可以工作,而在 Python 中却失败了。

有人可以帮我确定问题出在哪里吗?谢谢!

0 投票
3 回答
4149 浏览

python - 为什么连接器/Python 不执行许多优化插入?

我正在使用连接器/Python 将许多行插入到 mysql 的临时表中。这些行都在列表列表中。我执行这样的插入:

我注意到(当然还有更多的行)性能非常差。使用 SHOW PROCESSLIST,我注意到每个插入都是单独执行的。但是文档https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html说这应该优化为 1 插入。这是怎么回事?

0 投票
1 回答
224 浏览

python - 循环遍历结果集时插入行

我正在开发一个程序,将数据库中的行从一个用户克隆到另一个用户。它适用于我选择行,编辑一些值,然后将它们插入回去。

我还需要将新插入的 rowID 与其现有的对应对象一起存储,以便以后可以克隆其他一些链接表。

我的代码如下所示:

运行此代码时,我收到以下错误:

mysql.connector.errors.InternalError:找到未读结果

我假设这是因为我试图运行一段INSERT时间我仍在循环SELECT我认为使用两个游标可以解决这个问题。为什么使用多个游标仍然会出现此错误?

我找到了一个解决方案fetchall(),但我担心会使用太多内存,因为SELECT.

这有效,但速度不是很快。我在想使用fetchall()会更快,但似乎如果我不获取完整的结果集,那么 MySQL 会对我大喊大叫。

有没有办法在获取整个结果集的情况下循环遍历结果集时插入行?

0 投票
1 回答
3844 浏览

python - 使用mysql连接器python在python中编码问题

我编写了一个 python 脚本,它从数据库中获取数据并进行处理。最初我使用 pymysql 连接数据库,我将其更改为 MySQL Connector for python。当我开始使用 MySQL 连接器时,我遇到了以下问题

“ascii”编解码器无法对位置 14-16 中的字符进行编码:序数不在范围内(128)

我尝试通过添加 MySQL 连接器的字符集设置,但问题仍然存在。

有人对这个问题有想法吗?