]“ _ 283846_2019”附近的语法不正确。 (102)(SQLExecDirectW)“)

时间:2019-07-03 07:14:35

标签: python sql-server

我必须将sql数据库连接到python,以便可以通过python添加新的用户数据。

我尝试了int转换,这使我进一步陷入了null类型数据集的麻烦。 我已经尝试过放置支架。它不起作用。

<?php
//Variables
$email = $_POST['email'];
$password = $_POST['password'];

echo "Your account email is: " + $email + " and password is: " + 
$password"; 
?>

实际结果告诉我print(sqlInsertUser)打印所有正确的值。 我希望execute命令能够正常工作,并在其中添加sql数据。

1 个答案:

答案 0 :(得分:1)

这是问题所在:

 sqlInsertUser = "Insert Into retraining (date, user_id, image_name,location_flagged, processing_flagged, insert_date, visible)Values( "+ date + " , " + user_id + " , " + name + " , " + flag_loc + " , " + flag_proc + " , " + now + " , " + flag_vis + " )"

例如,如果name包含一些无效字符,例如“ [”或“]”,则execute调用失败,因为name字符串未正确包含。 (应该用双引号引起来)

您可以在pyodbc中使用参数替换支持,例如

 sqlInsertUser = "Insert Into retraining (date, user_id, 
     image_name, location_flagged, processing_flagged, insert_date, 
     visible) Values (?,?,?,?,?,?,?)"

然后运行

cur.execute(sqlInsertUser, date, user_id, name, flag_loc, flag_proc, now, flag_vis)

(上面的示例代码未经测试。您可能需要修复一些语法错误)

有关语法的更多详细信息,请参见https://www.python.org/dev/peps/pep-0249/#paramstylehttps://github.com/mkleehammer/pyodbc/wiki/Cursor