0

我正在提交一个表单并将值插入到我的 mysql 数据库中。它选择的表单元素之一具有选项值,例如 11#120#12 (id#cost#months)。

我执行以下操作:

$plan = explode("#", $_POST['symb']);
$plan = $plan[0];
$cost = $plan[1];

然后提交到我的数据库

echo $insertSQL = sprintf("INSERT INTO users (username, plan, cost) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['username'], "text"),
                       GetSQLValueString($plan, "text"),
                       GetSQLValueString($cost, "int"));

问题是 $cost 得到了错误的值,而不是 120 它得到了 1 作为值。错误在哪里?(贴出的sql语句只是实际查询的一部分,仅供演示)

4

3 回答 3

4

$plan在尝试$cost从最初存储在其中的数组中提取之前,不要用字符串值覆盖。

要么更改第一个(并$plan$plan = $plan[0];脚本后面更改对它的每个引用),要么移动该行使其出现在$cost = $plan[1];.

(为了清楚起见,我建议使用前一个选项)。

于 2012-05-29T09:31:58.063 回答
0
$plan = explode('#',$_POST['symb']);
$p = $plan[0];
$cost = $plan[1];
于 2012-05-29T09:36:36.173 回答
0

在第 2 行,$plan 被赋值为“11”(即 $plan[0]),在第 3 行,$plan[1] 引用了字符串中的第二个字符“1”。

上面的评论已经告诉你如何解决它。

于 2012-05-29T09:45:07.507 回答