如何在 python 中使用 SQL 参数?

发布于 2024-09-13 06:51:09 字数 484 浏览 3 评论 0原文

我使用的是 python 2.7 和 pymssql 1.9.908

在.net中查询数据库我会做这样的事情:

using (SqlCommand com = new SqlCommand("select * from Customer where CustomerId = @CustomerId", connection))
{
    com.Parameters.AddWithValue("@CustomerID", CustomerID);
    //Do something with the command
}

我试图弄清楚python,更具体地说是pymssql的等价物是什么。我意识到我可以只进行字符串格式化,但是这似乎不能像参数那样正确处理转义(我可能是错的)。

我如何在Python中做到这一点?

I am using python 2.7 and pymssql 1.9.908.

In .net to query the database I would do something like this:

using (SqlCommand com = new SqlCommand("select * from Customer where CustomerId = @CustomerId", connection))
{
    com.Parameters.AddWithValue("@CustomerID", CustomerID);
    //Do something with the command
}

I am trying to figure out what the equivalent is for python and more particularly pymssql. I realize that I could just do string formatting, however that doesn't seem handle escaping properly like a parameter does (I could be wrong on that).

How do I do this in python?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空城仅有旧梦在 2024-09-20 06:51:09

创建连接对象 db 后运行 db. execute(query, params)

cursor = db.execute('SELECT * FROM Customer WHERE CustomerID = %s', [customer_id])

然后使用生成的 cursor 对象的任何 fetch... 方法。

不要被 %s 部分所迷惑:这不是字符串格式化,而是参数替换(不同的 DB API 模块使用不同的语法进行参数替换 - pymssql 只是碰巧使用了不幸的 %s!-)。

After creating a connection object db run db.execute(query, params):

cursor = db.execute('SELECT * FROM Customer WHERE CustomerID = %s', [customer_id])

then use any of the fetch... methods of the resulting cursor object.

Don't be fooled by the %s part: this is NOT string formatting, it's parameter substitution (different DB API modules use different syntax for parameter substitution -- pymssql just happens to use the unfortunate %s!-).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文