我正在python中运行一个SQL查询,并将表的结果存储在Pandas DataFrame中。我想运行这个查询,直到找到一个条件为止。下面是一些需要处理的示例数据:
sql table1
name val
post 10
sutter 15
oak 20
import pandas as pd
# mysql connection
import pymysql
from sqlalchemy import create_engine
user = 'user1'
pwd = 'pwd'
host =
所以我有个疑问
query = "SET @rownumber = 0; UPDATE students SET roll_no = (@rownumber := @rownumber+1) WHERE standard='{}' AND division='{}' ORDER BY fname, lname".format(standard, division)
当我试图使用cursor.execute(query)运行此查询时,使用
pymysql.err.ProgrammingError: (1064, "You have an
pymysql3 cursor.lastrowid属性有一个奇怪的问题。我正在编写一个线程化的python3应用程序。它在主线程中有一个打开的pymysql3连接器,还有许多可以随机选择/插入/更新的函数。我在应用程序的线程中运行这些函数。每个函数都有下一个结构:
def function...(link_to_connector)
....
cur = link_to_connector.cursor(pymysql.cursors.DictCursor)
cur.execute(...)
id = cur.lastrowid #Used only in INSERT
我在python 3中使用pymysql运行查询,如下所示:
conn = 'con info here'
cur = conn.cursor()
cu.execute('sql goes here')
查询在以下几行之间进行:
load data
local infile 'file path'
ignore into table table_name
fields terminated by '/t'
optionally enclosed by '"'
lines terminated by
每次我重新启动mysql服务时,我的应用程序在任何查询中都会收到以下错误:
result = self._query(query)
File "/usr/local/lib/python3.6/site-packages/pymysql/cursors.py", line 328, in _query
conn.query(q)
File "/usr/local/lib/python3.6/site-packages/pymysql/connections.py", line 516, in query
self._affected_ro
因此,我使用PyMySQL包来查询远程数据库,并且我发现必须使用.execute()方法非常烦人。
我正在寻找一个包装器,将能够以一种更友好的方式构建原始MySQL查询。有没有人知道有什么包可以做到这一点?
我尝试过使用pypika,但它正在构建的查询('SELECT "id","username“FROM "users"')抛出一个错误
pymysql.err.ProgrammingError: (1064, 'You have an error in your SQL syntax; check the manual that
更新
conn = pymysql.connect(host='localhost',user='user',password='password',db='mydb',charset='utf8')
cur = conn.cursor(pymysql.cursors.DictCursor)
try:
query = 'select * from test where id = 1;abcd'
cur.execute(query)
res = cur.fetchone()
很抱歉在这里问您,但是我找不到关于pymysql安全指南中关于如何防止sql注入的大量参考,当我进行PHP开发时,我知道使用mysql preared语句(或称为参数化查询或stmt),但我在pymysql中找不到这方面的参考。
简单的代码使用pymysql,如
sqls="select id from tables where name=%s"
attack="jason' and 1=1"
cursor.execute(sqls,attack)
我如何知道这是否会防止sql注入攻击?如果阻止成功,pymysql如何防止? cursor.execute
我正在用Python构建一个查询,以传递给一个pymysql查询。
condition=['m']
query = "select * from table where condition in {}'.format(tuple(condition))
我所坚持的部分是,我希望设置脚本,以便在condition可以是单个项或有多个项的情况下都可以工作。
在我看来,将列表转换为元组是可行的,但它不起作用,因为:tuple(condition)返回:('m',),它在我的mysql服务器上无法工作。
在python中,我可以将一个值或多个值发送到查询
我正在使用Python3和PyMySQL 0.7.9。Mysql的版本是5.5.57。
使用此查询从Mysql获取数据的工作方式如下:
cur.execute('SELECT date FROM Tablename1 ORDER BY id DESC LIMIT 1')
我想从变量中得到表名。阅读Pymysql文档和 Stackoverflow帖子会让我相信这段代码应该能工作:
dbtable = Tablename1
query = 'SELECT date FROM %s ORDER BY id DESC LIMIT 1'
cur.execute(query
我想使用以下查询:
select x from y where z in ("a", "b", "c")
我在MySQL中有pymysql和MySQL。
这适用于pymysql:
args = ["a", "b", "c"]
db = cur.execute('select x from y where z in %s',(tuple(args),))
但是它不适用于mysql.connector。它给了我错误,就像'MySQLConverter‘对象没有属性'_tu
我正在使用PyMYSQL从MySQL数据库中查询数据。我想要使用的示例查询是:
SELECT count(*) AS count
FROM example
WHERE item = %s
LIMTI 1
它将使用以下命令运行
query = "SELECT COUNT(*) as count FROM example WHERE item = %s LIMIT 1"
cur.execute(query,(None))
或
cur.execute(query,(10))
问题是项可以具有空值,这会导致
WHERE item = NULL
这在MySQL中不起作用。相反,它应该是
我正在寻找MySQL/Connector for Python的替代品,我想知道PyMySQL是否可以直接用作替代品。如果我这样做,我应该期待输出的一些不同的输出格式。为此,我在包含文本、数字和日期/时间字段的表上运行SELECT查询,PyMySQL是否会以与MySQL/连接器相同的方式返回格式化的输出?我也应该期待任何问题运行其他类型的查询,如插入,删除等。 如果您能分享您的经验,我将不胜感激。
我正在使用PyMySQL将一些数据从MySQL数据库中获取到熊猫数据中。我需要使用LIKE子句运行select,但似乎PyMySQL对select语句做了一些奇怪的操作,并且不喜欢查询中有%时:
#connection to MySQL
engine = create_engine('mysql+pymysql://user:password@localhost:1234/mydb', echo=False)
#get descriptions we want
decriptions = pd.read_sql(sql=r"select content from lis
我试图查询一个MySQL表,以便根据用户的电子邮件获得特定的用户类型。
import pymysql
conn= pymysql.connect(host='<ip>',user='<user>',password=<pass>',db='<db>')
a = conn.cursor()
a.execute("SELECT `type` FROM `users` WHERE `email` LIKE '<email>';")
data =
我成功地按照链接部署了一个应用程序。
部署之后,我在连接Cloud时遇到了问题。在我的IPython笔记本中,在部署应用程序之前,我可以使用Google使用以下语句连接到云实例:
cloud_sql_proxy.exe -instances="project_name:us-east1:instance_name"=tcp:3306
输入上述内容后,我将在Google中获得通知
"listening on 127.0.0.1:3306 for project_name:us-east1:instance_name
ready for new connections
我在我的程序中使用PyMySQL库和水瓶。我的视图函数每次调用数据库时都访问它。在一些调用之后,它会中断并引发InterfaceError(0, '')。接下来的所有请求都会引发InterfaceError (任何专门的db查询)。
Traceback (most recent call last):
(several files of mine and Flask)
File "/home/maxim/.local/lib/python3.7/site-packages/pymysql/cursors.py", line 170, in execut