41

我想使用 php 和 mysql 安全地增加字段值。

  1. 我必须使用什么类型的表/字段?

  2. 我必须使用最低版本的 MySQL 吗?

  3. MySQL 的安全事务的 sql 代码是什么?

4

3 回答 3

73

我假设您指的是存储引擎的“表”类型。任何支持突变的东西(即不是“存档”或“黑洞”)

任何数字字段都可以(tinyint、int、float 等)。也就是说,没有特殊的 PHP 代码,只有用于增加所需字段的 SQL:

UPDATE table SET field = field + 1 WHERE [...]

如果你想要一个事务,那么将上面的查询打包到一个事务中。至于 MySQL 版本,我同意@hsz - 尽可能使用最新版本。

于 2010-01-09T14:04:00.333 回答
7

如果您正在谈论主键,则将id列设置为primaryand auto_increment

增加字段看起来像这样:

UPDATE table SET field = field + 1 WHERE id = 9

关于 MySQL 版本 - 尽可能使用最新版本。;)
> 5.0会好的。

于 2010-01-09T13:54:17.537 回答
2

1.我必须使用什么类型的表/字段?

--> 表的类型取决于您为应用程序计划的内容。它可能是 Innodb 或 Myisam。我建议您使用数字列,以便您可以增加/减少它们。如果您打算允许负数,请不要将其设为 UNSIGNED。

以下是您在声明列长度时可能会发现有用的限制:

TINYINT (length)  - 1 - Integer with unsigned range of 0-255 and a signed range from -128-127
SMALLINT (length)  - 2 - Integer with unsigned range of 0-65535 and a signed range from -32768-32767
MEDIUMINT(length)  - 3 -  Integer with unsigned range of 0-16777215 and a signed range from -8388608-8388607
INT(length)   - 4 - Integer with unsigned range of 0-429467295 and a signed range from -2147483648-2147483647
BIGINT(length)   - 8 -  Integer with unsigned range of 0-18446744 and a signed range from
-9223372036854775808-9223372036854775807

2.我必须使用最低版本的 MySQL 吗?

--> 只是为了使用自动增量?您可以使用最新版本。如果可能的话,我建议 > 5.2.4。

3.这个的sql代码是什么,MySQL的安全事务?

--> 抱歉,暂时没有这个问题的答案。

于 2010-01-09T14:18:53.200 回答