【发布时间】:2018-06-29 15:42:19
【问题描述】:
我正在尝试在this stackoverflow 问题答案的帮助下将两个输入字段发布到我的 MySQL 数据库。但是,我的数据库中没有任何输入,或者我的页面上没有任何错误。我错过了什么?数据库凭据有效,因为我的页面上也有它们的输出(此处未列出)
我将它添加到另一个线程的代码中(作为稍后包含的 cfg.php 文件):
<?php
class Database
{
private $servername = 'mydomain.com';
private $dbname = 'mydatabase';
private $username = 'mydatabaseuser';
private $password = 'mypassword';
public function dbConnection()
{
$this->conn = null;
来自线程的代码:
//check if submit button is clicked
If (isset($_POST['submit'])) {
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO subscribers (name, email)
VALUES (:name, :email)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);
$name = $_POST['name'];
$email = $_POST['email'];
$stmt->execute();
echo "New records created successfully";
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
}
else { echo "Not set"; } //Added by suggestion from Funk Forty Niner in this thread
我的结局:
}
}
?>
表格代码:
<?php include 'cfg.php' ?>
<div class="container">
<div class="container__item">
<form class="form" method="post"> <!-- updated with method as suggested by RamRaider in this thread -->
<input type="text" name="name" class="form__field" placeholder="Your name" style="margin-bottom:10px;"/><br> <!-- updated from name-type to text-type as suggested by Funk Forty Niner and RamRaider in this thread -->
<input type="email" name="email" class="form__field" placeholder="Your E-Mail Address" />
<button type="submit" name="submit" class="btn btn--primary btn--inside uppercase">Send</button>
</form>
</div>
</div>
【问题讨论】:
-
您没有完全按照发布的方式进行问答。错误报告将是您的朋友。
-
告诉你什么;将
else { echo "Not set"; }添加到您的If (isset($_POST['submit'])) {...},您将亲眼看到您将收到“未设置”回显。 -
您的其中一个输入不是有效的输入标记,即使在 HTML 5 中也是如此。
-
谢谢!错误报告在 E_ALL 级别是/是 On,例如,当我删除右括号时它会起作用。我现在注意到输入标签错误“名称”,谢谢! PhpStorm 甚至指出了这一点,但我没有看 -_- 虽然仍然无法正常工作,并且没有错误。甚至添加了 else 语句。可能是因为它是一个按钮而不是一个输入字段吗? /:还添加了下面 RamRaider 建议的 method="post"。
-
欢迎。好吧,按钮有一个提交类型,所以应该可以工作。立即查看 Ram 的答案并在其下发表评论以获得更多帮助。确保您的查询确实启动并具有正确的连接。
标签: php mysql database forms pdo