Python中文
首页
教程
问答
标签
搜索
登录
注册
使用ODBC时,我可以在SQL注释中添加任意文本吗?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>考虑由定义的表</p> <pre><code>CREATE TABLE Example (id INTEGER) </code></pre> <p>以及用于向<code>Example</code>添加元组的<code>INSERT</code>语句,在SQL注释中有一个<strong>单</strong>引号:</p> ^{pr2}$ <p>我通过<code>pyodbc</code>模块连接到MySQL。令人惊讶的效果似乎是<code>INSERT</code>命令随后总是失败。注释中有奇数个撇号。消息提到HY000和:</p> <pre><code>'The SQL contains 0 parameter markers, but 1 parameters were supplied' </code></pre> <p><strong>更新</strong>:该行为现在已经由MySQL支持人员进行了验证,因此有可能被归类为bug。请参阅Gord的答案,其中列出了另一个示例,以及指向MySQL bug数据库的注释。在</p> <p>下面列出了完整的测试脚本。我想知道这句话是否只是一个<strong>抓住了</strong>?但奇怪的是:</p> <p>如果语句文本是通过ODBC传递的,那么假设注释从<code>--</code>开始并扩展到行尾,这是错误的吗?(我确实在<code>--</code>后面加了一个空格,我使用SQL注释来实现可移植性。不同的注释字符或MySLQ块注释不会改变效果。)</p> <p>对ODBC会话的跟踪分别显示下面列出的成功和失败案例的<code>SQLNumParams</code>,分别为1和0。然而,这些陈述本身看起来是既定的。我试图假设换行符('\n')是无效的。但是下面的工作示例有两个引号(<code>my_cmd_with_two_qutoes</code>)或没有引号(即<code>my_cmd</code>用“*”替换“'”)的工作示例与此矛盾。在</p> <p>还是司机的问题?在</p> <pre><code>import pyodbc my_cmd = """-- Comment's device INSERT INTO Example (id) VALUES (?) """ my_cmd_with_two_quotes = """-- Comment's device's INSERT INTO Example (id) VALUES (?) """ conn = pyodbc.connect("DSN=Abcdef;PWD=...") thing_named_cursor = conn.cursor() # success, replacing the single apostrophe: thing_named_cursor.execute(my_cmd.replace("'", "*"), (123, )) # success, too: thing_named_cursor.execute(my_cmd_with_two_quotes, (456, )) # failure: try: thing_named_cursor.execute(my_cmd, (789, )) except pyodbc.Error, e: print("Error: %s" % e) conn.commit() conn.close() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你试过屏蔽评论吗?<code>/* mycomment */</code></p> <p>我的猜测是,在这种情况下,MySQL不会将这种语言的新行视为新行;或者连接可能会将“空白”处理到最小,以优化查询的发送(有效地剥离出新行)。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
将Pandas数据帧转换为PyTorch张量?
2 回答
将Pandas数据帧转换为scipy稀疏矩阵
3 回答
将Pandas数据帧转换为Spark Datafram时出现问题
8 回答
将pandas数据帧转换为spark DataFram时出错
6 回答
将Pandas数据帧转换为spark datafram时收到错误
1 回答
将Pandas数据帧转换为Spark数据帧
5 回答
将Pandas数据帧转换为Tensorflow数据
3 回答
将Pandas数据帧转换为tkinter obj
7 回答
将pandas数据帧转换为XML
6 回答
将Pandas数据帧转换为值sql语句
9 回答
将pandas数据帧转换为元组
9 回答
将pandas数据帧转换为元组列表
5 回答
将pandas数据帧转换为元组列表并删除所有pandas数据类型
7 回答
将pandas数据帧转换为具有头和数据类型的numpy数组
6 回答
将pandas数据帧转换为内存中的拼花地板,并将其加载到Python中的Hadoop中
7 回答
将pandas数据帧转换为内存中类似文件的对象?
2 回答
将Pandas数据帧转换为内存功能(&F)
3 回答
将pandas数据帧转换为列表列表
9 回答
将pandas数据帧转换为列表列表以输入到RNN
9 回答
将Pandas数据帧转换为单行DataFram
7 回答