当前位置: 首页 > 面试题库 >

将变量插入节点mysql的SQL查询中

孟茂
2023-03-14
问题内容

在维基节点mysql的,我注意到变量(样)插入SQL查询两种不同的方式,一种是通过在查询字符串中间插入一个变量,另一种方式是通过将?在查询字符串,并?在下一个参数的数组中定义这些值。?查询中替换的值将被转义。

有什么区别?什么时候应该在另一个上使用?(如果我们希望表名是一个变量,是否应该将其转义?)

维基密码

client.query(
    'INSERT INTO '+TEST_TABLE+' '+
    'SET title = ?, text = ?, created = ?',
    ['super cool', 'this is a nice text', '2010-08-16 10:00:23']
);

Wiki链接 :https :
//github.com/felixge/node-mysql

Wiki摘录

将sql查询发送到服务器。’?’ 字符可以用作参数数组的占位符,这些参数将在发送最终查询之前安全地转义。

此方法返回一个Query对象,该对象可用于流式处理传入的行数据。


问题答案:

始终偏爱选项2,因为它们是SQL注入证明。选项1将在5分钟内使您的网站被黑客入侵,而黑客将很难突破选项2。

即使在性能选项2中也可能更快一些。

但是 :表名不能使用进行转义,?所以不要去那里。只要确保用户不能手动输入表名,您就可以免受黑客的攻击。

-编辑-

您为什么仍要使表名可变?



 类似资料:
  • 问题内容: 我在控制器的函数中。 因此,从表单中,我得到了一个变量的值,说: 然后,我需要在WHERE语句中嵌入该变量(即它的值)。如果我对值进行硬编码,它将带来正确的结果,但是我已经尝试了各种方法来插入该变量而没有成功。好吧,假设我设法使用了该变量,那么我将不得不研究绑定以避免SQL注入,但是到目前为止,我要说的是,看看该变量是否可以在查询中使用。 我已经试过了,双引号,串联。$ vx。,花括号

  • 问题内容: 我似乎无法使用户输入的数据进入表然后进行打印。 到目前为止,这是我的代码: 我从这里得到了“模板” /开始 解决以下 现在,我想向表中添加两个变量,即原始日志变量和另一个用作时间戳记的变量。 其余代码与上面相同。我认为这会起作用,但是当我测试它时,表中什么也没有。 问题答案: 我认为您只需要更改获取和插入值的方式即可(另外,此行的SQL中存在语法错误): 我认为您可以完全忘记该变量,除

  • 问题内容: 为SQL Server编写查询时,可以声明和使用如下变量: 在编写用于MS Access的查询时,是否有一种方法可以类似地声明和使用变量? 我需要用另一个查询的结果填充变量,然后使用该值执行插入/更新操作。该查询将从.NET应用程序运行。 问题答案: 在某种方式 但是,您不能使用,在运行查询或在VBA中设置查询时可以手动输入参数。 您可以使用System.Data.OleDb命名空间中

  • 几天来,我一直在使用二进制搜索树实现,我已经到了知道我的根正在通过使用我的“插入()”来填充的地步(当我使用Eclipse进行调试时,我可以看到这一点)。为什么我的其他节点不会被添加到树中? 这是我的BST课程: 这是我的Main(),最终我想在控制台中打印我的BST值,但首先我知道它们需要添加到树中: 公共类Main{

  • 问题内容: 我想编写一个包含NodeJS变量的SQL查询。当我这样做时,它给我一个错误“未定义”。 我希望下面的SQL查询能够识别该变量。如何将NodeJS变量输入到SQL查询中?它周围是否需要特殊字符,例如或。 问题答案: 您将需要将变量的 值 放入SQL语句中。 这不好: 这将起作用,但是从SQL注入攻击中并不安全: 为了防止SQL注入,您可以像这样转义您的价值: 但是最好的方法是使用参数替换

  • 问题内容: 我是hive的新手,想知道是否有像在SQL中一样将数据插入到hive表中的方法。我想像我的蜂巢中插入我的数据 我已经读过您可以将文件中的数据加载到配置单元表中,也可以将数据从一个表导入到配置单元表中,但是有什么方法可以像在SQL中那样附加数据吗? 问题答案: 自Hive 0.14起,此处的某些答案已过时 https://cwiki.apache.org/confluence/displ