我正在提交表单并将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语句只是实际查询的一部分,仅用于演示目的)
答案 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'。
上面的评论已经告诉你如何修复它。