Php 正在尝试将数据插入mysql数据库
它正在连接到数据库,但未插入值 请帮助我将表单值插入表中 `Php 正在尝试将数据插入mysql数据库,php,mysql,Php,Mysql,它正在连接到数据库,但未插入值 请帮助我将表单值插入表中 ` if(设置($\u POST[“提交”])){ $dbconnect=newmysqli('localhost','root','tas'); 如果($dbconnect){ echo“连接到数据库”; } 否则{ echo“未连接”; } $fname=$_POST[“fname”]; $lname=$_POST[“lname”]; $cert=$_POST[“证书”]; $sex=$_POST[“sex”]; $mobile=$_
if(设置($\u POST[“提交”])){
$dbconnect=newmysqli('localhost','root','tas');
如果($dbconnect){
echo“连接到数据库”;
}
否则{
echo“未连接”;
}
$fname=$_POST[“fname”];
$lname=$_POST[“lname”];
$cert=$_POST[“证书”];
$sex=$_POST[“sex”];
$mobile=$_POST[“mobile”];
$email=$_POST[“email”];
$institution=$_POST[“institution”];
$session=$_POST[“session”];
$media=$_POST[“media”];
$insert=“插入已注册(firstmame、lastname、certificatename、性别、手机、电子邮件、机构、会话、媒体)
价值($fname、$lname、$cert、$sex、$mobile、$email、$institution、$session、$media)”;
如果(!$insert){
回显“错误id未插入”;
}
否则{
回声“
成功”;
}
}
?>`您从未执行过
mysqli\u查询()
。请执行查询并提供更多详细信息。您的代码正在为变量分配字符串值
$query = "whatever";
这并不是在数据库中插入任何内容,因为您的代码从未将该字符串作为SQL(发送到数据库)执行
要在数据库上执行该操作,需要使用mysqli\u
函数,例如mysqli\u query()
请考虑使用<强>准备好的语句<强> > <强>占位符< /强>
在SQL文本中包含潜在的不安全值会导致SQL注入漏洞 注意:SQL文本中的字符文本需要用单引号括起来 e、 g.值('abc','def')
不是值(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);
}
参考资料:您能否发布您收到的确切错误消息?您从未执行过该查询。我敢打赌它是values@JakeBallOP正在使用MySQLi:
$dbconnect=newmysqli('localhost','root','tas')代码>粗鲁。我认为您尝试插入的大多数值都是字符串,因此需要引用。此外,我建议您查找准备好的语句/参数化查询,以确保查询的安全性,而不是将变量直接插入查询中。此外,您不运行insert。虽然这是问题的一部分,但他们还需要在查询中引用所有字符串值。对于下一票-这怎么不能回答OPs问题?OP想知道为什么它没有插入,这就是为什么。第四个可能与您在一起@Dagonpls我如何执行查询我是一个新手在这里阅读,回顾示例。如果你去寻找,所有的信息都在那里。不要偷懒@EsemeUkeme@EsemeUkeme:我在回答中添加了一个后续内容,以提供一个使用带绑定占位符的准备语句执行简单插入的示例。这将替换代码中的行$insert=“insert…”
(可能我拼错了什么,或者漏掉了一个分号,但这应该能让您了解它的大致情况。有关mysqli接口函数的更多信息,请参阅PHP文档。(请仔细注意函数接受的参数以及函数返回的内容。)
$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);
}