我需要使用php将数据从HTML设计的文本框传输到Mysql数据库。我尝试了很多,但没有奏效...所以最后,如果有人已经有它的工作代码,那么请告诉我。我只有两个名为"用户名"和"密码"的文本框和一个提交按钮。我已经创建了一个数据库[dbname:userdemo,tablename:users]但没有结果。请使用 OOPs 概念而不是程序性概念。任何形式的帮助将不胜感激!!
下面的 html 代码是表单外观的片段,尽管您已经提到您已经完成了这部分:
页1.html
<form method="POST" action="page2.php">
<input type="text" name="usernameForm">
<input type="password" name="passwordForm">
<input type="submit" value="Submit">
</form>
下面的 php 代码然后从 page1 获取变量.html用户从表单中提交他们的信息,然后在数据库中的表中插入一行。使用此代码时,不要忘记将所有表名、列等替换为表单上的表名、列等,以及 4 个"********"变量,这些变量使您的代码可以访问数据库:
页2.php
//uses MySQL (PDO)
<?php
$usernameForm = $_POST['usernameForm'];
$passwordForm = $_POST['passwordForm'];
$servername = "********";
$username = "********";
$password = "********";
$myDB = "********";
try {
$conn = new PDO("mysql:host=$servername;dbname=$myDB", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
$sql = "INSERT INTO myTable (username, password) VALUES (:usernameForm, :passwordForm)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':usernameForm', $usernameForm);
$stmt->bindParam(':passwordForm', $passwordForm);
$stmt->execute();
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
$conn = NULL;
?>
已编辑:在阅读了您希望将所有这些代码放在一个页面上的评论后,一种简单的方法如下:
替换此行:
<form method="POST" action="page2.php">
用这一行:
<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
这里发生的事情如下:PHP 代码始终在服务器上运行。当您的网站完全加载时,您与服务器的连接将终止。无论您通过<form>...</form>
标签发送到服务器的任何信息都需要与服务器建立连接,这就是为什么通常人们使用两个页面(一个用于输入,另一个用于接收数据),但是有一种简单而常见的方法可以将所有这些代码保存在一个页面中: 让<form>...</form>
发送给自己!
为此,您有 2 个选项:
- 如果您的页面名为 Page1.php,那么您可以将
action="page2.php"
替换为action="page1.php"
。然而,这通常不是好的编程,因为如果由于某种原因您的页面名称发生变化,那么您的代码就会中断,这将我们引向第二个(也是更好的)选项。 - 将
action="page2.php"
替换为action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"
。这样做几乎与选项 1 相同,但是action
中的 php 代码会询问 $_SERVER 超全局页面的名称是什么,从而防止您的页面在重命名文件等情况下"中断"。