|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
- import pymysql
- data = {
- 'id': '20120001',
- 'name': 'Bob',
- 'age': 100
- }
- db = pymysql.connect(host='xxxx,user='xxxx',password='xxxx',port=3306,db='xxxx')
- cursor = db.cursor()
- table = 'students'
- keys = ', '.join(data.keys())
- values = ', '.join(['%s'] * len(data))
- sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
- try:
- if cursor.execute(sql, tuple(data.values())):
- print('Successful')
- db.commit()
- except:
- print('Failed')
- db.rollback()
- db.close()
复制代码
没有报错,但是数据就是加不到数据库,大神们看看问题出在哪里了。非常感谢。
根据你提供的代码,无法直接判断问题出在哪里,但有几个可能的原因需要排查:
1. 数据库连接配置:请确保你提供的数据库连接配置是正确的,包括主机名、用户名、密码、端口号以及数据库名称。如果其中有任何一个值不正确,连接数据库就会失败。
2. 表名和字段名:请确保 `table` 和 `keys` 变量包含正确的表名和字段名。如果表名或字段名有拼写错误或不存在,插入操作将失败。
3. 数据类型匹配:请确保数据类型与数据库表中的定义匹配。例如,如果数据表中某个字段的类型为整数,`data` 字典中对应的值也必须是整数。如果数据类型不匹配,插入会失败。
4. 异常处理:目前代码中 `except` 块中只输出了 `'Failed'` ,没有提供更多的信息。可以在 `except` 块中添加更详细的错误信息打印,例如 `print(f'Failed: {str(e)}')`,以便获取更具体的错误信息。
我建议将代码的异常处理修改为以下形式,以便打印出更多的错误信息:
- try:
- if cursor.execute(sql, tuple(data.values())):
- print('Successful')
- db.commit()
- else:
- print('Data Insertion Failed')
- except Exception as e:
- print(f'Error: {str(e)}')
- db.rollback()
复制代码
通过这样的修改,你能够获取更具体的错误信息,帮助你排查问题。请尝试运行修改后的代码,并观察终端输出的错误信息。如果有任何其他问题,请随时提问。
|
|