无法插入MySQL以获取选择值

时间:2015-04-05 11:32:33

标签: php mysql

我有一个网络应用程序,学生分为“批次”。

我正在尝试为特定批次插入学生,用户可以通过选择选项选择批次。将该学生添加到特定批次后,他/她将被添加到stdhold表中。但是,它仅插入第一个选择选项的值。

<?php  
function specialCOn(){
$connew=mysqli_connect("localhost","root","");
$db=mysqli_select_db($connew,'mcqs');
return($connew);
}
if (isset($_POST['add'])) 
{
$namestd=$_POST['std_name'];
$batchstd=$_POST['batch'];
$FNAME=$_POST['f_name'];
$query3="INSERT INTO `$batchstd` VALUES('','$namestd','$FNAME')";
$rsq3=mysqli_query(specialCOn(),$query3);
mysqli_close(specialCOn());
$querrollno="select rollno from `$batchstd` order by rollno desc";
$rsqrollno=mysqli_query(specialCOn(),$querrollno);
$getrollno=mysqli_fetch_array($rsqrollno);
$rollnoto=$getrollno[0];
echo "<script>alert('$batchstd')</script>";
echo "<script>alert('$rollnoto')</script>";
mysqli_close(specialCOn());

//Problem is here
$querystdhold="INSERT INTO stdhold       values($rollnoto,'$namestd','$FNAME','$batchstd')";
$rsqhold=mysqli_query(specialCOn(),$querystdhold);
mysqli_close(specialCOn());
if ($rsq3&&$rsqhold) 
{
     echo "<script> alert('Student Added.');
     window.location.assign('addstudent.php');
     </script>";

    //header('Location:addstudent.php');
}
else
{
    echo "<script> alert('You Havenot added Student.');
    window.location.assign('addstudent.php');</script>";

}

}



 ?>

2 个答案:

答案 0 :(得分:0)

尝试在插入查询中指定列名称:

INSERT INTO stdhold (col1, col2, col3, col4) VALUES ($rollnoto, '$namestd', '$FNAME', '$batchstd');

有关参考,请参阅MySQL Insert documentation

答案 1 :(得分:0)

试试这个:

$db = new mysqli("host","user","pw","database");
$stmt = $db->prepare("INSERT INTO ? (col1,col2,col3) VALUES('',?,?)");
$stmt->bind_param('sss', $_POST['batch'], $_POST['std_name'], $_POST['f_name']);
$stmt->execute();

对于详细示例,您需要read @Amber回答如何创建安全准备语句。

希望这对你有所帮助。