PHP代码未将HTML连接到MYsql数据库[关闭]

Posted

技术标签:

【中文标题】PHP代码未将HTML连接到MYsql数据库[关闭]【英文标题】:PHP code not connecting HTML to MYsql database [closed] 【发布时间】: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 没有密码 【参考方案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

【讨论】:

实际上我不小心没有为学校占位符添加变量,但仍然不起作用,谢谢

以上是关于PHP代码未将HTML连接到MYsql数据库[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用php从localhost连接到另一台服务器的数据库[关闭]

无法通过php代码连接到mysql数据库,PHP致命错误:找不到类'MySQLi'

将phpmyadmin sql数据库连接到我的android应用程序[关闭]

无法使用 PHP 页面连接到 MySQL

如何让 mysql 连接到网站(使用 html 和 css 创建)

MySQL 没有连接到数据库