php explode返回错误的值

时间:2012-05-29 09:29:25

标签: php mysql explode

我正在提交表单并将valuse插入到我的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语句只是实际查询的一部分,仅用于演示目的)

3 个答案:

答案 0 :(得分:4)

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

更改$plan中的第一个$plan = $plan[0];(并稍后在脚本中更改对它的每个引用)或移动该行,使其显示在$cost = $plan[1];之后。

(为了清晰起见,我建议使用前一个选项).`

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在第2行,$ plan分配为“11”($ plan [0]),在第3行,$ plan [1]引用字符串中第二个字符为'1'。

上面的评论已经告诉你如何修复它。