它正在连接数据库,但没有插入值 请帮我将表格值插入到注册表中 `
if (isset($_POST["submit"])) {
$dbconnect = new mysqli('localhost','root','','tas');
if ($dbconnect) {
echo "connected to database";
}
else{
echo "did not connect";
}
$fname = $_POST["fname"];
$lname = $_POST["lname"];
$cert = $_POST["certificate"];
$sex = $_POST["sex"];
$mobile = $_POST["mobile"];
$email = $_POST["email"];
$institution = $_POST["institution"];
$session = $_POST["session"];
$media = $_POST["media"];
$insert ="INSERT INTO registered(firstmame,lastname,certificatename,sex,mobile,email,institution,session,media)
VALUES ($fname,$lname,$cert,$sex,$mobile,$email,$institution,$session,$media)" ;
if (!$insert) {
echo "</br>error id not insert";
}
else{
echo"<br/> success";
}
}
&GT;`
答案 0 :(得分:4)
您的代码正在为变量分配字符串值。
$query = "whatever";
没有向数据库插入任何内容,因为该字符串永远不会被您的代码作为SQL(发送到数据库)执行。
要在数据库上执行该操作,您需要使用mysqli_
函数,例如mysqli_query()
。
请考虑将预先准备好的陈述与绑定占位符一起使用。
将可能不安全的值包含在SQL文本中会导致SQL注入漏洞。
注意:SQL文本中的字符文字需要用单引号括起来。
e.g。 VALUES ('abc','def')
不是VALUES (abc,def)
。
<强>后续强>
这是使用带有绑定占位符的预准备语句运行INSERT的示例。
$sql = "INSERT INTO registered
( firstmame
, lastname
, certificatename
, sex
, mobile
, email
, institution
, session
, media
) VALUES
( ? , ? , ? , ? , ? , ? , ? , ? , ?)";
if ($stmt = mysqli_prepare($dbconnect, $sql)) {
mysqli_stmt_bind_param($stmt, 'sssssssss'
, $fname
, $lname
, $cert
, $sex
, $mobile
, $email
, $institution
, $session
, $media
);
mysqli_stmt_execute($stmt);
echo "affected rows = " . mysqli_stmt_affected_rows($stmt);
mysqli_stmt_close($stmt);
} else {
echo "error in prepare " . mysqli_error($dbconnect);
}
答案 1 :(得分:0)
您永远不会执行mysqli_query()
。请执行查询并提供更多详细信息。