我正在设置要执行查询的页面,但是没有发生
<?php
$username = "root";
$password = "";
$dbname = "grading";
$mysqli = new mysqli("localhost", $username, $password, $dbname);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$addregno = filter_input(INPUT_POST ,'add_s_regno');
$addname =filter_input( INPUT_POST ,'add_s_name');
$q1 = filter_input( INPUT_POST ,'add_q1');
$q2 = filter_input( INPUT_POST ,'add_q2');
$q3 = filter_input( INPUT_POST ,'add_q3');
$q4 = filter_input( INPUT_POST ,'add_q4');
$q5 = filter_input( INPUT_POST ,'add_q5');
$q6 = filter_input( INPUT_POST ,'add_q6');
$q7 = filter_input( INPUT_POST ,'add_q7');
$q8 = filter_input( INPUT_POST ,'add_q8');
$q9 = filter_input( INPUT_POST ,'add_q9');
$q10 = filter_input( INPUT_POST ,'add_q10');
if($addregno=="" OR $addname=="" OR $q1=="" OR $q2=="" OR $q3=="" OR $q4=="" OR $q5=="" OR $q6=="" OR $q7=="" OR $q8=="" OR $q9=="" OR $q10=="")
{
echo "<script type='text/javascript'>alert('Enter all The Details');</script>";
}
else
{
$total=$q1+$q2+$q3+$q4+$q5+$q6+$q7+$q8+$q9+$q10;
$sql=" INSERT INTO studentmarks (`Reg_No`, `student_name`, `q1`, `q2`, `q3`, `q4`, `q5`, `q6`, `q7`, `q8`, `q9`, `q10`, `Total`) VALUES ($addregno,$addname,$q1,$q2,$q3,$q4,$q5,$q6,$q7,$q8,$q9,$q10,$total)";
$result=$mysqli->query($sql);
if($result==true)
{
echo "<script>window.location = 'markentry.php'; alert('success entry');</script>" ;
}
else{
echo "<script>window.location = 'markentry.php'; alert('failed');</script>";
}
}
?>
答案 0 :(得分:0)
插入时,正确的方法是:
$sql=" INSERT INTO studentmarks (`Reg_No`, `student_name`, `q1`, `q2`, `q3`, `q4`, `q5`, `q6`, `q7`, `q8`, `q9`, `q10`, `Total`) VALUES ('$addregno','$addname','$q1','$q2','$q3','$q4','$q5','$q6','$q7','$q8','$q9','$q10','$total')";
也就是说,'$q7'
而不是$q7
(引号)。但这不是不对的,因为有sql注入
答案 1 :(得分:0)
您正在使用字符串,因此应使用引号arounbd var 但是在sql中使用php var意味着存在sql注入的风险,因此您应该使用预处理语句和绑定参数
假设reg_no是一个整数q *,total是一个双精度数,而student_name是您应该使用的字符串
stmt = $mysqli->prepare(" INSERT INTO studentmarks
(`Reg_No`, `student_name`, `q1`, `q2`, `q3`, `q4`, `q5`, `q6`, `q7`, `q8`, `q9`, `q10`, `Total`)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) ");
$stmt->bind_param('isddddddddddd', $addregno,$addname,$q1,$q2,$q3,$q4,$q5,$q6,$q7,$q8,$q9,$q10,$total);
$addregno = filter_input(INPUT_POST ,'add_s_regno');
$addname =filter_input( INPUT_POST ,'add_s_name');
$q1 = filter_input( INPUT_POST ,'add_q1');
$q2 = filter_input( INPUT_POST ,'add_q2');
$q3 = filter_input( INPUT_POST ,'add_q3');
$q4 = filter_input( INPUT_POST ,'add_q4');
$q5 = filter_input( INPUT_POST ,'add_q5');
$q6 = filter_input( INPUT_POST ,'add_q6');
$q7 = filter_input( INPUT_POST ,'add_q7');
$q8 = filter_input( INPUT_POST ,'add_q8');
$q9 = filter_input( INPUT_POST ,'add_q9');
$q10 = filter_input( INPUT_POST ,'add_q10');
$total=$q1+$q2+$q3+$q4+$q5+$q6+$q7+$q8+$q9+$q10;
/* execute prepared statement */
$stmt->execute();