准备好的陈述正字法

时间:2013-02-21 09:27:22

标签: php mysql prepared-statement

Prepared Statements as explained in Programming with Tony有理由将参数放在SQL字符串之外。

所以我的问题是:

  1. MySQL中的小写UPPERCASE有多重要? (SELECT v select; AND v and)
  2. “反击”这些名字有多重要? (SELECT'name'FROM'table'WHERE variable =:variable)[我没有了解如何在这里添加反引号]
  3. 我应该把整数/数字放在字符串中吗?

5 个答案:

答案 0 :(得分:1)

  

1.- MySQL中的小写大写有多重要? (SELECT v select; AND v and)

SQL命令不区分大小写。通常的做法是大写它们以便它们更容易被发现,但它不是强制性的。

  

2.-“反击”这些名字有多重要? (SELECT'name'FROM'table'WHERE variable =:variable)

如果对象名称是保留字或包含特殊字符(例如空格),则必须将其转义。否则,它完全是可选的。

反引号语法仅限MySQL。其他数据库使用双引号或方括号。

  

[我不知道怎么在这里添加反引号]

使用“代码示例”工具栏按钮:

Code Sample

  

3.-我应该把整数/数字放在字符串中吗?

如果你这样做,MySQL必须将它们转换为数字。您不会注意到性能损失,但没有特别的理由使用字符串。它与在PHP中执行此操作一样多余:

echo "$name";

此外,编辑器的语法高亮显示器不会区分数字:

Number as String

答案 1 :(得分:0)

<强>答案

  1. 是的,您可以同时使用两种情况(大写,小写)。

  2. 当您使用mysql的某些保留字作为列名时,您必须使用反引号。

  3. 是的,您可以将整数/数字放入字符串中。

答案 2 :(得分:0)

  1. 使用大写,因为它可以更容易地看到什么是SQL关键字,什么不是。
  2. 习惯一直使用反引号,例如,如果你有一个名为'Dec'的列并且在查询中没有使用反引号,你会得到一个错误,因为DEC()是一个SQL函数
  3. 绝对。 SQL会自动将数字字符串转换为数字值。

答案 3 :(得分:0)

  1. 我个人认为大写有助于区分SQL关键字与表名和列名。
  2. 反引号有帮助,因为在某些时候,您最终可能会得到一个包含特殊字符的标识符,或者是一个保留的MySQL关键字。要使用标识符或特殊字符,必须使用反引号引用它。

答案 4 :(得分:0)

  

MySQL中的小写UPPERCASE有多重要? (SELECT v select; AND v and)

使用大写非常重要,但仅出于可读性目的。

  

“反击”这些名字有多重要?

这取决于。
对于硬编码标识符,它们是可选的,但对于动态标识符,它们是强制性的,因为您无法知道将传递哪个值。当然,你也必须通过将它们加倍来逃避传递值内的反引号。

  

我应该将整数/数字放在字符串中吗?

取决于 一般来说没有区别 如果你使用丑陋的mysqli和动态绑定,将所有变量绑定为“s”更容易。
但是在使用PDO时,必须注意将LIMIT参数设置为字符串 - 仿真模式下的PDO会破坏SQL。