php - 连接 2 个 BASH 变量会产生奇怪的值

标签 php mysql bash

我有一些变量正在通过各种机器传递(通过 php 和其他 bash 脚本)并最终到达最后一个服务器。

我使用这些变量来填充 mysql 数据库条目。

一切正常,直到我尝试将其中一个条目的 2 个变量连接在一起,这导致将完全错误的变量输入到数据库中。

这是变量到达脚本时的示例:

$4=48
$6=101216

如果我单独使用它们,脚本运行良好:

mysql --host=localhost --user=xxxx --password=xxxx db_name <<EOF
insert into db_table (uid, ts_id) values ('$4', '$6');
EOF

正如预期的那样,uid 字段填充为 48,ts_id 填充为 101216

但是如果我尝试将它们连接到第三个字段......

userID="$4";
trackID="$userID$6";

mysql --host=localhost --user=xxxx --password=xxxx db_name <<EOF
insert into db_table (uid, ts_id, track_id) values ('$4', '$6', '$trackID');
EOF

...在 track_id 字段中输入的不是 48101216,而是 8388607

是否发生了一些奇怪的数学运算,或者这是正在生成的错误代码?

我也尝试过像这样连接它们:

trackID=$4$6;

像这样:

trackID="$4$6"

像这样:

insert into db_table (uid, ts_id, track_id) values ('$4', '$6', '$4$6');

但它们都得出神秘的 8388607 ??

即使每次运行时两个变量中的数字都不同,当我连接它们时,我总是得到 8388607?

我做错了什么?

最佳答案

track_id 列的定义是什么?三字节整数允许的值范围为 -8388608 到 +8388607。

https://bugs.mysql.com/bug.php?id=8769

关于php - 连接 2 个 BASH 变量会产生奇怪的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37913080/

相关文章:

mysql - 从另一个表中的另一列计算列值

bash - 匹配字符串中几个可能的字符之一

bash - 三通中的破管与流程替换

php - 从 Laravel 身份验证中排除路由

php - 访问 Atlassian Jira REST API 以在过滤器上运行 super 简单的报告

php - 有没有人创建了一个适用于谷歌日历的 ics iCalendar 生成器函数?

mysql - 在 OS X 上设置 MySQL root 用户密码

mysql - 之后立即进行简单的减法和消除值

bash - 将文件分成单独的文件,每个文件 10,000 行

php - WordPress 使用自定义 php 文件