【发布时间】:2014-06-12 02:25:41
【问题描述】:
我有以下用于将表单提交到数据库的 php 代码,唯一的问题是复选框...在提交表单时会出现这种情况
警告:join() [function.join]:第 16 行 /srv/disk6/1662822/www/website.co.nf/connect-mysql.php 中传递的参数无效
<?php
$host="host.com" ;
$username="1662822_db1" ;
$password="awesomepassword" ;
$db_name="1662822_db1" ;
$tbl_name="courses" ;
$dbcon = mysqli_connect("$host","$username","$password","$db_name") ;
if (!$dbcon) {
die('error connecting to database'); }
echo 'Courses successfully registerd , ' ;
// escape variables for security
$studentid = mysqli_real_escape_string($dbcon, $_POST['studentid']); echo $studentid;
**$ckb = join (', ', $_POST['ckb']);**
**$sql="INSERT INTO courses (studentid, ckb)
VALUES ('$studentid', '$ckb')";**
if (!mysqli_query($dbcon,$sql)) {
die('Error: ' . mysqli_error($dbcon));
}
echo " Thank you for using IME Virtual Registeration ";
mysqli_close($dbcon);
?>
错误是 警告: join() [function.join]:第 16 行 /srv/disk6/1662822/www/website.com/connect-mysql.php 中传递的参数无效
我明白它与 join 函数有关(显然),但我不明白它是什么......
复选框的 HTML 代码
<input type="checkbox" name="ckb" value="strenthofmaterials";>
<label for="StrengthofMaterials"> Strength Of Materials </label>
<input type="checkbox" name="ckb" value="dynamics";>
<label for="StrengthofMaterials"> dynamics </label>
它适用于所有其他选择,只需更改每个复选框的值
另一条信息,mysql数据库中的ckb字段类型为tinyint,默认值为0 ...我猜它不是我要找的类型..?
【问题讨论】:
-
$_POST['ckb']可能不是数组 .. 试试var_dump($_POST['ckb']);并在此处检查或发布。 -
以确保我得到你......表单本身的数组对吗? name=ckb[] 而不仅仅是 name=ckb ?
-
我不知道您的
<form>的结构。您需要发布它,以便任何人都可以轻松地帮助您。 -
就像这样 所有其他选择仅更改值..
-
@ShankarDamodaran I trid var_dump($_POST['ckb']);但它没有工作
标签: php html sql forms checkbox