我有一个网络应用程序,学生分为“批次”。
我正在尝试为特定批次插入学生,用户可以通过选择选项选择批次。将该学生添加到特定批次后,他/她将被添加到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>";
}
}
?>
答案 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回答如何创建安全准备语句。
希望这对你有所帮助。