首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点-mysql查询试图违背我的意愿用参数替换我的问号。

节点-mysql查询试图违背我的意愿用参数替换我的问号。
EN

Stack Overflow用户
提问于 2012-02-20 09:03:18
回答 3查看 3.9K关注 0票数 4

我试图像这样使用节点-mysql运行一个简单的查询:

代码语言:javascript
复制
client.query("UPDATE mytable SET emote='wtf?' WHERE id=5");

我得到了错误

错误:给定的参数太少

因为它找到了问号并期望参数。我怎么能让它无视这个问号!?用\逃避它不起作用。将['?']作为参数传递是完全不可能的--如果我不知道查询包含多少问号怎么办?

目前,我正在使用一种计算查询中问号数量并将该数量的问号作为参数传递的解决方案。但如果我真的需要这些参数来做什么呢?一想到这个,我就发抖。

因此,总结一下--我如何告诉client.query()忽略问号?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-20 10:52:59

Stack Overflow用户

发布于 2012-02-20 13:14:00

用这个:

代码语言:javascript
复制
client.query('UPDATE mytable SET emote=? WHERE id=5', ['wtf?']);

编辑:

经过“?”由于参数是完全不可能的-如果我不知道查询包含多少问号怎么办?

我跳过了这个。为什么不知道查询包含多少问号?为什么会有一个带有问号的未知查询?

票数 3
EN

Stack Overflow用户

发布于 2012-03-22 05:11:08

当我试图重新创建您的场景时,重复使用单引号会导致一个问题:

代码语言:javascript
复制
client.query('UPDATE mytable SET emote='wtf?' WHERE id=5');

具体来说,当我试图启动Node实例时,我看到了"SyntaxError:意外标识符“。

但是,当我将外部引号转换为双引号时,我可以运行一个等价的查询,如下所示:

代码语言:javascript
复制
mysql.query("SELECT * FROM stories WHERE title='Test?'");

比较而言,这是我的查询的参数化版本:

代码语言:javascript
复制
mysql.query('SELECT * FROM stories WHERE title=?',[req.params.title]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9358451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档