import pymysql while True: ind = input("编码:")#用户输入 if ind.upper()=='Q':#如果id=qq就退出 break name = input("用户名:") ages = input("年龄:") # #连接mysql conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',passwd="mysqladmin",charset='utf8',db='novfi') # 用户名 密码 编码 数据库名 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) #要用cursor发送指令 # # #发送指令 sql="insert into test(id, username,age)values(%s,%s,%s)" # 创建命令:"insert into 表名( 字段名1,字段名2,字段名3)values(占位符,占位符,占位符)" cursor.execute(sql, [ind,name,ages]) # conn.commit() # # #关闭 cursor.close() conn.close()
时间: 2024-04-14 10:31:58 浏览: 20
根据你提供的代码,我注意到你正在尝试将数据插入到名为'novfi'的数据库中。然而,你在连接数据库时遇到了问题。
错误提示显示无法找到名为'novfi'的数据库。请确保在连接数据库之前已经创建了名为'novfi'的数据库。
如果已经创建了数据库,请检查连接参数是否正确,如主机名、端口号、用户名、密码等是否正确配置。
另外,请注意在执行SQL语句之前,最好先进行输入的合法性判断和数据类型转换,以确保输入的数据符合数据库表中字段的要求。
如果问题仍然存在,请提供更多关于你的代码和配置的信息,以便我能够更好地帮助你解决问题。
相关问题
import pymysql.cursors import pymysql import pandas as pd connection = pymysql.connect(host='localhost',#ip user='root',#账号 password='123456',#密码 database='hw',#数据库名 cursorclass=pymysql.cursors.DictCursor#具体驱动类 ) with connection: with connection.cursor() as cursor: #sql = "select * from data_paitent" cursor.execute(sql,()) connection.commit() #result=cursor.fetchall() #print(result) df:DataFrame=pd.read_sql(sql='select * from data',columns=['name','mobile','email','addr','gender','age','disease','option_date','treat_time' ,'hospital','energy','hospital_loc'],con=connection) df.head()
根据你提供的代码,你正在使用 PyMySQL 连接到数据库,并尝试执行一个 SQL 查询语句并将结果存储在 DataFrame 中。
然而,在你的代码中,有一行注释掉了查询语句 `sql = "select * from data_paitent"` ,而在后面的代码中,你使用了一个没有定义的变量 `sql` 来执行查询操作。
如果你想从名为 `data` 的表中检索数据,并将结果存储在 DataFrame 中,你可以修改代码如下:
```python
import pymysql.cursors
import pymysql
import pandas as pd
connection = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='hw',
cursorclass=pymysql.cursors.DictCursor
)
with connection:
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM data")
connection.commit()
df = pd.read_sql(sql='SELECT * FROM data', con=connection)
df.head()
```
这样修改后,你应该能够成功执行查询并获得 DataFrame 结果。如果仍然遇到问题,请提供错误信息和更多的上下文,以便我能够提供更具体的帮助。
pymysql.connect(autocommit=True)在python3.11的环境下提示:Python versions 3.5 do not allow keyword arguments after " expression
I apologize for the confusion. It seems that the error you encountered is not related to the `autocommit` parameter specifically, but rather a syntax error related to keyword arguments in general.
In Python versions prior to 3.8, keyword arguments must be passed after any positional arguments. However, starting from Python 3.8, you can mix keyword arguments and positional arguments freely.
To resolve this issue in Python 3.5, you should either upgrade to a newer version of Python or modify your code to pass the `autocommit` parameter as a positional argument instead of a keyword argument.
Here's an example of how you can modify the code to work with Python 3.5:
```python
import pymysql
# Create database connection
connection = pymysql.connect(
'your_host',
'your_user',
'your_password',
'your_database',
autocommit=True
)
# Rest of the code...
```
By passing the arguments as positional arguments instead of keyword arguments, you should be able to avoid the syntax error in Python 3.5.