sqlserver_cursor.execute("INSERT INTO t_wuliu_information_pay_statistic (var_title,var_type_name,var_company_name,var_source,dt_add_time,var_user_name,var_succeed_cause) VALUES (?,?,?,?,?,?,'单条付费')",(var_title,var_type_name,var_company_name,var_source,dt_add_time,var_user_name))这样写对吗?
时间: 2023-10-06 11:06:03 浏览: 46
根据你提供的代码和参数,这个 SQL 语句看起来是正确的,可以将这个语句改为:
```
sqlserver_cursor.execute("INSERT INTO t_wuliu_information_pay_statistic (var_title,var_type_name,var_company_name,var_source,dt_add_time,var_user_name,var_succeed_cause) VALUES (?,?,?,?,?,?,'单条付费')",(var_title,var_type_name,var_company_name,var_source,dt_add_time,var_user_name))
```
其中,问号代表需要插入的参数,这些参数将在执行 SQL 语句时按顺序进行替换。如果这些字段中的某些字段是可以为空的,需要在插入时进行判断,避免插入 NULL 值出现异常。
相关问题
for row in sqlserver_result: var_title = row[0] var_type_name = row[1] var_company_name = row[2] var_source = row[3] dt_add_time = row[5] var_user_name = row[6] sqlserver_cursor.execute("INSERT INTO t_wuliu_information_pay_statistic (var_title,var_type_name,var_company_name,var_source,dt_add_time,varchar_name,var_succeed_cause) VALUES (?,?,?,?,?,?,'单条付费')",(row[0],row[1],row[2],row[3],row[5],row[6]))这样写正确吗
这段代码存在一些问题:
1. `sqlserver_cursor.execute()` 方法应该在 `for` 循环内部调用,因为你需要为每一行数据执行一次 SQL INSERT 操作。
2. 在 `sqlserver_cursor.execute()` 方法中,应该使用变量名而不是 `row[i]`,因为在循环结束后,`row` 变量的值将是最后一行查询结果的值,而不是你想要插入的每一行数据。
下面是修改后的代码:
```
for row in sqlserver_result:
var_title = row[0]
var_type_name = row[1]
var_company_name = row[2]
var_source = row[3]
dt_add_time = row[5]
var_user_name = row[6]
sqlserver_cursor.execute("INSERT INTO t_wuliu_information_pay_statistic (var_title,var_type_name,var_company_name,var_source,dt_add_time,varchar_name,var_succeed_cause) VALUES (?,?,?,?,?,?,'单条付费')",(var_title,var_type_name,var_company_name,var_source,dt_add_time,var_user_name))
```
希望能够帮助你。
为什么这段pythonfor row in sqlserver_result: var_title = row[0] var_type_name = row[1] var_company_name = row[2] var_source = row[3] is_succeed = row[5] dt_add_time = row[6] var_user_name = row[7] print(var_title,var_type_name,var_company_name,var_source,is_succeed,dt_add_time,var_user_name) mysql_cursor.execute("INSERT INTO t_wuliu_information_pay_statistics (var_titile,var_type_name,var_company_name,var_source,is_succeed,dt_add_time,var_user_name,var_succeed_cause) VALUES (var_title,var_type_name,var_company_name,var_source,is_succeed,dt_add_time,var_user_name,'单条付费')")。。sqlserver_result的结果还是有的,但是插入的结果为[] [] [],这是为什么,如何修改python代码
这可能是因为插入的数据类型与表中的数据类型不匹配,或者是插入的数据有空值或者特殊字符。可以尝试打印出要插入的数据,看看是否存在这些问题。
另外,看到你的 SQL 语句中 var_titile 拼写错误了,应该是 var_title。
修改建议如下:
1. 打印出要插入的数据,查看是否存在空值或特殊字符。
2. 确认要插入的数据类型与表中的数据类型是否匹配。
3. 修改 SQL 语句中的 var_titile 为 var_title。
修改后的代码示例:
```python
for row in sqlserver_result:
var_title = row[0]
var_type_name = row[1]
var_company_name = row[2]
var_source = row[3]
is_succeed = row[5]
dt_add_time = row[6]
var_user_name = row[7]
print(var_title,var_type_name,var_company_name,var_source,is_succeed,dt_add_time,var_user_name)
mysql_cursor.execute("INSERT INTO t_wuliu_information_pay_statistics (var_title,var_type_name,var_company_name,var_source,is_succeed,dt_add_time,var_user_name,var_succeed_cause) VALUES (%s,%s,%s,%s,%s,%s,%s,'单条付费')",(var_title,var_type_name,var_company_name,var_source,is_succeed,dt_add_time,var_user_name))
mysql_conn.commit()
```
注意:在 SQL 语句中使用占位符 %s 时,变量需要使用元组传入。同时,记得要在插入数据后手动提交事务。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)