错误:1265:列爆炸字符串

时间:2016-04-12 18:11:43

标签: php html mysql

我对任何类型的编程都很新。我会说,我已经参与了大约6-8个月,所以如果我问一个愚蠢的问题或使用错误的术语,请原谅我。

我正在为MySQL课程完成一项学校作业。它是一个视频商店的简单Web应用程序。我创建了一个非常简单的表单,其数据应该发布到sql数据库。到目前为止,我已经成功了。但是,我试图将单个单选按钮选择中的两个值传递到数据库表中的两个单独字段。我试图使用PHP的explode()函数,然后在SQL insert语句中使用保存结果数组的变量。到目前为止我还没有成功。

我收到以下三个错误:

1。)注意:未定义的索引:第38行的C:\ wamp64 \ www \ Final_Project \ rent.php中的rtx [0]

2。)注意:未定义的索引:第38行的C:\ wamp64 \ www \ Final_Project \ rent.php中的rtx [1]

3。)错误:1265:数据截断列' Rental_fee'在第1行

第38行是包含sql insert语句的行

表单的HTML(单选按钮)

 <div class="form-group"> 
    <label class="col-sm-2 control-label">Rental type</label> 
    <div class="col-sm-4">
      New release <input name="Rental_type" type="radio" value="6.99,2.99" checked="checked" action="">
      Standard <input name="Rental_type" type="radio" value="4.99,1.99" action="">
    </div>

然后我尝试将值传递给变量以使用爆炸功能。

enter $rt = $_POST['Rental_type']; 
$rtx = explode(',',$rt);

最后,sql insert语句。

 $sql = "INSERT INTO rental_table (Cust_id, Movie_id, Check_out_date, Return_due_date, Rental_fee, Per_diem_late_fee, Last_updated) VALUES ('{$mysqli->real_escape_string($_POST['Cust_id'])}', '{$mysqli->real_escape_string($_POST['Movie_id'])}', '{$mysqli->real_escape_string($_POST['Check_out_date'])}', '{$mysqli->real_escape_string($_POST['Return_due_date'])}', '{$mysqli->real_escape_string($_POST['rtx[0]'])}', '{$mysqli->real_escape_string($_POST['rtx[1]'])}', '{$mysqli->real_escape_string($_POST['Last_updated'])}')";


 $insert = $mysqli->query($sql);




 // Print response from MySQL
  if ( $insert ) {
    echo "Success!";
  } else {
    die("Error: {$mysqli->errno} : {$mysqli->error}");
  }

  // Close our connection
  $mysqli->close();

我是第一次发帖的长期潜伏者。我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分:2)

您正在使用$_POST['rtx[0]'],但在POST变量中没有任何类似的索引,因此请使用$rtx[0],如下所示:

$sql = "INSERT INTO rental_table (
    Cust_id, Movie_id, Check_out_date, Return_due_date, Rental_fee, Per_diem_late_fee, Last_updated
) VALUES (
'{$mysqli->real_escape_string($_POST['Cust_id'])}',
'{$mysqli->real_escape_string($_POST['Movie_id'])}',
'{$mysqli->real_escape_string($_POST['Check_out_date'])}',
'{$mysqli->real_escape_string($_POST['Return_due_date'])}',
'{$mysqli->real_escape_string($rtx[0])}',
'{$mysqli->real_escape_string($rtx[1])}',
'{$mysqli->real_escape_string($_POST['Last_updated'])}'
)";

答案 1 :(得分:0)

试试这个:

<div class="form-group"> 
<label class="col-sm-2 control-label">Rental type</label> 
<div class="col-sm-4">
  New release <input name="Rental_type" type="radio" value="new" checked="checked" action="">
  Standard <input name="Rental_type" type="radio" value="std" action="">
</div>

现在,你需要添加一个值数组来调用你的php。     

$var =  array(
    'std' => array ('4.99', '1.99'),
    'new' => array ('6.99', '2.99')
);

现在,您获得post var并从数组中调出值。

$val1 = $var[$_POST['Rental_Type'][0];
$val2 = $var[$_POST['Rental_Type'][1];

- 用它做点什么。

最终,您将从某个地方的数据库或数据文件中提取这些类型的值,现在也可以开始以这种方式工作。