【问题标题】:PHP code not connecting HTML to MYsql database [closed]PHP代码未将HTML连接到MYsql数据库[关闭]
【发布时间】:2022-01-21 09:44:44
【问题描述】:

我是 PHP 新手......所以我想制作一个程序,其中我的 HTML 表单输入存储在数据库中。我遵循youtube tutorial 来执行此操作,这是我为 php 文件编写的代码`

$firstname = $_POST ['firstname'] ;
$email = $_POST ['email'];
$admin = $_POST ['admin'];
$school = $_POST ['school'];
$gender = $_POST ['gender'] ;

//DATABASE CONECTION
$conn = new mysqli('localhost', 'root', '', 'register');
if ($conn-> connect_error){
die ('connection error    :  ' . $conn-> connect_error);
}else{
$stmt = $conn->prepare("INSERT INTO register(firstname, email, admin, gender)
values(?, ?, ?, ?, ?)");
$stmt-> bind_param("ssiss", $firstname, $email, $admin, $gender);
$stmt-> execute();
echo"Registration succesfull";
$stmt-> close();
$conn-> close();
}`

这是我的数据库

还有我的html代码

<html>
<head>
    <title>form</title>    
</head>
<body>
    <h1>
      <div>  <center>Trial form</center> 
    </h1>
     
        <form action="connect.php" method="post"> 
           <center> <label for="name"><b>enter name</b> </label> <br>
            <input type="text" name="first name" id="firstname"> <br>
            <br>
            <label for="email"><b>email</b></label><br>
            <input type="email" name="email" id="email"> <br>
            <br>
            <label for="admin no."><b> enter admin no. </b></label><br>
            <input type="number" name="admin" id="admin"> <br> 
            <label for="school"><b>enter school name</b></label> <br>
            <input type="text" name="school" id="school"> <br> 
            <label for="school"><b>Gender</b></label> <br>
            
            <label for="male"> <input type="radio" name="gender" id="male" value="m"><b>male</b></label> <br>
            <label for="female"><input type="radio" name="gender" id="female" value="f"><b>female</b></label><br>
                   
       <input type="submit" value="submit"><br>
        </form> <center>
        </div>
            <body bgcolor="#fcba03">
                <body text="#000000"

            
</body>
</html>

当我运行它时,HTML 表单运行良好,但 PHP 程序只是显示在屏幕上,没有任何输出。请帮助我,谢谢。 为了解决这个问题,我尝试重写 php 代码。 我尝试调试 php 代码,但这是它给我的错误Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\Users\Dell\connect.php on line 10 connection error : Access denied for user 'root'@'localhost' (using password: YES) (我用我的mysql密码连接它) 这是我运行时的 html 代码 enter image description here 这是我的 php 代码 enter image description here 我也不断收到这个错误

Fatal error: Uncaught Error: Call to a member function prepare() on bool in C:\Users\Dell\connect.php:14
Stack trace:
#0 {main}
  thrown in C:\Users\Dell\connect.php on line 14

【问题讨论】:

  • 什么确切不起作用?您尝试过什么来解决问题?这个问题真的与 HTML 有关吗?您尚未共享任何 HTM 标记,也未共享用于向此脚本发送数据的表单
  • 实际上有html代码为png我也尝试过重新编写代码
  • 您错过了将school 列添加到您的查询。根据您的屏幕截图,该列不能为空且没有默认值,因此您也必须添加它。
  • @M.Eriksson 我纠正了错误似乎仍然不起作用
  • mysql 的错误表明 root 有密码,因此请找到 root 的密码并在数据库连接中使用它。目前,根据您上面显示的代码,root 没有密码

标签: php html mysql


【解决方案1】:

我认为问题在于您提供了四个值,但要求提供五个。 试试这个:

   $stmt = $conn->prepare("INSERT INTO register(firstname, email, admin, gender)
values(?, ?, ?, ?)"); // removed the last '?'

$stmt-> bind_param("ssis", $firstname, $email, $admin, $gender); // removed a 's' from the parameters data type

【讨论】:

  • 实际上我不小心没有为学校占位符添加变量,但仍然不起作用,谢谢
猜你喜欢
  • 1970-01-01
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
  • 2016-09-11
相关资源
最近更新 更多