使用 php 将表单数据发送到 mysqli dtbs 失败(xampp 环境)
Posted
技术标签:
【中文标题】使用 php 将表单数据发送到 mysqli dtbs 失败(xampp 环境)【英文标题】:Send Form Data to mysqli dtbs using php fails (xampp environment) 【发布时间】:2018-01-06 19:24:44 【问题描述】:这是我的 html 表单代码:问题是我不知道如何使用 xampp 成功地将表单提交到 mysql dtbs。 (数据不会发送到 dtbs)。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>My Form</title>
<meta name="description" content="An interactive form">
</head>
<body>
<form action="test.php" method="post" id="Personalinfo">
<label for="fname">Όνομα:</label>
<input type="text" id="fname" name="firstname" placeholder="Όνομα
Πελάτη..">
<input type="submit" value="Submit">
</body>
</html>
现在是我的 php 代码:
<?php
$servername = "localhost";
$username = "username";
$password = "";
$dbname = "mydb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
$sql = "INSERT INTO Guests (firstname)
VALUES ('?')";
if ($conn->query($sql) === TRUE)
echo "New record created successfully";
else
echo "Error: " . $sql . "<br>" . $conn->error;
$conn->close();
?>
mysql dtbs 中没有发送数据!我已经尝试了 2 天来解决这个问题,但什么都没有......请帮忙!
亲切的问候,灭霸
【问题讨论】:
【参考方案1】: <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>My Form</title>
<meta name="description" content="An interactive form">
</head>
<body>
<form action="test.php" method="post" id="Personalinfo">
<label for="fname">Όνομα:</label>
<input type="text" id="fname" name="firstname" placeholder="Όνομα
Πελάτη..">
<input type="submit" name="submitForm" value="Submit">
</body>
</html>
**test.php file**
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "mydb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
if(isset($_POST['submitForm']))
$firstname = $_POST['firstname'];
$sql = "INSERT INTO Guests (firstname)
VALUES ('$firstname')";
if ($conn->query($sql) === TRUE)
echo "New record created successfully";
else
echo "Error: " . $sql . "<br>" . $conn->error;
else
echo "Are you sure you enter a firstname and the name of your html submit is submitForm";
$conn->close();
?>
【讨论】:
非常感谢您的帮助!不幸的是,我在提交时收到了这条消息:“警告:mysqli::__construct(): (HY000/1044): Access denied for user ''@'localhost' to database 'mydb' in C:\xampp\htdocs\NutriWebSolutions第 8 行的 \test.php 连接失败:用户 ''@'localhost' 拒绝访问数据库 'mydb'"。 哦..,$username 是 root 我已经编辑了我的代码,将数据库用户名更改为 root,我之前没有注意到你错过了。现在将授予访问权限 再次感谢您的帮助!我没有投反对票,其他人必须...现在我提交了我的表格,一个空白页面没有出现错误,但数据仍未传输到 dtbs :( 好,现在这意味着提交代码块没有被执行,让我们试试else语句..再次检查代码..我只是添加一个更新【参考方案2】:$sql = "INSERT INTO Guests (firstname) VALUES ('?')";
'?'是替换为整数、字符串、双精度或 blob 值。
您放置了“?”,但忘记使用bind_param
准备它。更重要的是,您必须将$firstname
值传递给$stmt->bind_param("s", $firstname);
更新代码
$firstname = $_POST['firstname'];
$sql = $conn->prepare("INSERT INTO Guests (firstname) VALUES (?)");
$sql->bind_param("s", $firstname);
if ($sql->execute() === TRUE)
阅读
Prepared Statements in MySQLi
how to insert into mysql using Prepared Statement with php
【讨论】:
以上是关于使用 php 将表单数据发送到 mysqli dtbs 失败(xampp 环境)的主要内容,如果未能解决你的问题,请参考以下文章
PHP:将表单数据发送到 php 脚本,然后将数据发布到另一个表单处理器,如 zapier.com?