首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么phpMyAdmin使用撇号执行所有查询?

问为什么phpMyAdmin使用撇号执行所有查询?
EN

Database Administration用户
提问于 2016-05-05 16:22:19
回答 1查看 422关注 0票数 0

例如,如果我使用GUI执行INSERT,控制台将记录以下执行:

为什么每个项目都有撇号(除了NULL)?

我知道,我可以通过终端或PHP完成文字INSERT,而不需要撇号,特别是当引用表或列时(而几个 教程只在插入值周围应用撇号,而不是表或列引用)。我知道这不是“帮我提问”,但我很好奇这背后是否有什么原因。谢谢。

EN

回答 1

Database Administration用户

发布于 2016-05-05 17:52:05

这些值周围是单引号- '和表示字符串值。如果数字应该转到数字类型列,则不应该引用它们,但是在PhpMyAdmin中,默认情况下每个输入字段都是文本的,因此它可能也试图通过引用'5'来保持安全,MySQL可以在需要时转换类型。

另一种类型是backticks `,它是一个不同的字符。MySQL使用它来引用标识符(列的名称、表、索引等)。当您使用常规标识符(如name或email )时,不需要它,但其他人需要它:

  • 如果您需要使用保留字作为标识符-- `insert`或`order` --用这样的列创建表并不是个好主意,但有时它已经存在,您只需要查询它。
  • 当您想要使用复杂名称-- `column named X` --时,最好不要像这样命名列,但是它通常用于选择中的列别名。

。

代码语言:javascript
复制
select col1 as `column 1`, col2 as `column with diacritics áéí` from table;

对于PMA来说,只需简单地引用每个标识符,而不是检查它是否安全或不被引用。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/137670

复制
相关文章

相似问题

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