html表单,PHP插入数据到数据库不工作?
问题描述:
我在提交表单时出现了PHP代码,并且数据没有插入到数据库,我使用phpMyAdmin创建了我的数据库,我有HTML注册表单,该怎么办?html表单,PHP插入数据到数据库不工作?
这里我的PHP代码:
<?php
$con=mysqli_connect('localhost','root','');
$db=mysqli_select_db($con,'research_sys');
if ($con) {
echo "good";
}else {
die('error');
}
if(isset($_POST['submit'])){
$Fname = mysqli_real_escape_string($con,$_POST["Fname"]);
$Lname = mysqli_real_escape_string($con,$_POST["Lname"]);
$email = mysqli_real_escape_string($con,$_POST['email']);
$password = mysqli_real_escape_string($con,$_POST['password']);
$sql = mysqli_query($con,"INSERT INTO `research_sys`.`researcher` (Re_fname,Re_lname,Re_mobile,Re_password) values ('$Fname','$Lname','$email','$password ')");
if (mysqli_query($sql)){
echo "insert";
} else {
echo "error" .$sql ."<br>". mysqli_error($con);
}
}
?>
我这里登记的HTML代码
<form method="post" action="connect.php">
<legend class="center">Register </legend>
<br>
<div>
<input type="text" name="Fname" placeholder="First Name"/>
</div>
<div>
<input type="text" name="Lname" placeholder="Last Name"/>
</div>
<div>
<input type="text" name="email" placeholder="Email"/>
</div>
<div>
<input type="password" name="password" placeholder="Password"/>
</div>
<div>
<input type="password" name="con_password" placeholder="Password confirm"/>
</div>
<input type="submit" name="submit" value="submit"/>
</form>
答
请看下面:
$sql = mysqli_query($con,"INSERT INTO `research_sys`.`researcher`
^^^^^^^^^^^^ function
(Re_fname,Re_lname,Re_mobile,Re_password)
values ('$Fname','$Lname','$email','$password ')");
^space
if (mysqli_query($sql)){
^^^^^^^^^^^^ function
您正在使用的mysqli_query()
函数两次,去除一个只是做:
if ($sql){...}
和mysqli_error($con)
应该抛出一个关于它的错误。
如果它没有抛出错误,那么这可能表明您将此用作file:///
而不是http://localhost
。
编辑:
“我有HTML登记表whin我提交的PHP代码apears形式为”
那是因为什么,我引用您之前写以上。你需要运行这个关闭php/mysql安装并运行正常的网络服务器,并作为http://localhost
。
此外,请删除此'$password '
中的空格。这个空间被视为一个角色。
- 还要仔细检查您的列名称。似乎有些东西与
(Re_fname,Re_lname,Re_mobile,Re_password)
,Re_mobile
不匹配,并且您在VALUES中引用了电子邮件'$email'
。
你似乎也存储纯文本密码; 不要,如果你打算继续这样做,这是不安全的。使用password_hash()
和准备好的声明。
脚注:
$con=mysqli_connect('localhost','root','');
$db=mysqli_select_db($con,'research_sys');
可以缩短,要使用所有4个参数,mysqli_connect()
:
$con=mysqli_connect('localhost','root', '', 'research_sys');