我需要使用php将数据从HTML设计的文本框传输到Mysql数据库。我尝试了很多,但没有工作......所以如果有人已经有一个工作代码,那么请告诉我。 我只有两个名为“username”和“password”的文本框和一个提交按钮。 我已经创建了一个db [dbname:userdemo,tablename:users]但没有结果。请使用OOP概念而不是程序。 任何形式的帮助将不胜感激!!!
答案 0 :(得分:0)
下面的html代码是您的表单外观的摘要,尽管您已经提到过您已完成此部分:
page1.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&#34; ********&#34 ;使代码能够访问您的数据库的变量:
使page2.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>
标签发送到服务器的任何信息都需要与服务器建立连接,这就是为什么一般人们使用两个页面(一个用于输入,另一个用于接收数据),< strong> HOWEVER 有一种简单而通用的方法可以将所有代码保存在一个页面中:让<form>...</form>
发送给自己!
要做到这一点,你有两个选择:
action="page2.php"
替换为action="page1.php"
即可。然而,这通常不是很好的编程,因为如果由于某种原因,您的页面名称发生了变化,那么您的代码会中断,这会导致我们选择第二个(也是更好的)选项。action="page2.php"
替换为action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"
。这样做与选项1几乎相同,但action
中的php代码询问$ _SERVER超全局页面的名称是什么,从而阻止您的页面被打破&#34;在重命名文件的情况下。