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

问号在MySQL中“ WHERE column =?”的意义是什么?

卢元龙
2023-03-14
问题内容

我剖析了一些代码,并发现了这一点,

$sql = 'SELECT page.*, author.name AS author, updator.name AS updator '
     . 'FROM '.TABLE_PREFIX.'page AS page '
     . 'LEFT JOIN '.TABLE_PREFIX.'user AS author ON author.id = page.created_by_id '
     . 'LEFT JOIN '.TABLE_PREFIX.'user AS updator ON updator.id = page.updated_by_id '
     . 'WHERE slug = ? AND parent_id = ? AND (status_id='.Page::STATUS_REVIEWED.' OR status_id='.Page::STATUS_PUBLISHED.' OR status_id='.Page::STATUS_HIDDEN.')';

我想知道“?” 在WHERE语句中执行。它是某种参数持有人吗?


问题答案:

准备好的陈述使用“?”
在MySQL中允许将参数绑定到语句。如果使用得当,则高度认为可以更安全地防止SQL注入。这也允许更快的SQL查询,因为该请求仅需编译一次即可重用。



 类似资料:
  • 来源维基百科: 问号(?)用于将月日或周日留空,而不是“*”。 上面的说法对我来说没有多大意义。 所以如果我写一些cron作为< code>0 0 0?* *那么它是指每个月的第一天还是每天执行? 这有点令人困惑,因为Java crons以秒开始,而其他crons以分钟开始。

  • 问题内容: 我是sql的新手,由于某种原因,我习惯在teh命令行中看到的箭头符号(->)表示已准备好输入,现在显示为(’>),并且不接受命令。这是什么意思,我如何返回(->)? 谢谢 问题答案: 这意味着它将处理作为字符串文字一部分的所有输入,直到遇到(n个未转义的)字符串终止引号为止。 之所以会发生这种情况,是因为您以前使用这样的字符串终止引号字符开始了字符串文字。例如:

  • 本文向大家介绍双问号(??)运算符在PHP中是什么意思?,包括了双问号(??)运算符在PHP中是什么意思?的使用技巧和注意事项,需要的朋友参考一下 PHP 7添加了新的运算符双问号(??)运算符。在PHP 7中,双问号(??)运算符称为Null合并运算符。 如果它存在且不为NULL,则返回其第一个操作数;否则返回第一个操作数。否则,返回其第二个操作数。从左到右评估。Null合并运算符也可以链形式使

  • 问题内容: 使用或不使用变量访问变量之间有什么区别? 问题答案: 所述使它成为 用户定义 会话 变量。否则它将是 本地范围的 变量(在存储过程中),您必须先在本地使用它。如果需要,还可以设置 全局 系统 变量(使用或)。以及带有或或的会话 系统 变量。 有关详细信息,从文档:如果没有修饰符,改变会话变量(这就是为什么你在存储过程中的第一个当地人)。如果设置了多个系统变量,则该语句中的最新变量或修饰

  • 问题内容: 在Python中像在C中一样具有特殊含义吗?我在Python Cookbook中看到了这样的函数: 你能向我解释一下还是指出我在哪里可以找到答案(Google将解释为通配符,因此我找不到令人满意的答案)。 问题答案: 假设知道位置和关键字参数是什么,下面是一些示例: 范例1: 如你在上面的示例中所见,函数签名中仅包含参数。由于d和k不存在,因此将它们放入字典。该程序的输出为: 范例2:

  • 问题内容: 我知道出于文档目的注释中的含义,但除此之外又意味着什么?(我通常只会在Google上搜索,但结果中会显示每个非字母符号) 问题答案: 该符号表示Java注释。Java注释的作用是,它为变量,方法,类,接口或其他语言元素添加了特殊的属性。(可以在声明注释时进行配置)。向某事物添加注释时,程序的其他部分可以检查某事物是否具有注释。然后,它可以使用此信息来完成所需的任何工作。 让我举几个例子