php - mysql 不更新 html/php 中的信息

标签 php html mysql insert

我遇到的问题:我制作了一个“联系”表单,它应该将数据发送到我的数据库。一切正常,从本地主机访问页面后没有错误,显示了我想要看到的结果,但数据库(本地主机/phpmyadmin/..)没有更新任何信息。

这是我的 PHP:

 if(isset($_POST['insert']))
{
    $hostname = 'localhost';
    $username = 'root';
    $password = '';
    $databaseName = 'nig';

$Nume = $_POST['nume'];
$Email = $_POST['email'];
$Telefon = $_POST['telefon'];
$Subiect = $_POST['subiect'];
$Mesaj = $_POST['mesaj'];

$connect = mysqli_connect($hostname, $username, $password, $databaseName);
$query = "INSERT INTO `amar` (`nume`, `email`, `telefon`, `subiect`, `mesaj`) VALUES ('$Nume','$Email','$Telefon','$Subiect','$Mesaj')";

$result = mysqli_query($connect,$query);

if($result)
{
    echo 'Mesaj trimis.';
}else{
    echo 'Mesaj netrimis';
}

mysqli_free_result($result);
mysqli_close($connect);

这是我的 HTML:

<form action="insert2.php" action="post">
    <form role="form">
      <div class="form-group">
        <label for="nume">Nume complet</label>
        <input type="text" class="form-control"  name="nume">
      </div>
      <div class="form-group">
        <label for="email">Adresa e-mail</label>
        <input type="text" class="form-control"  name="email">
      </div>
      <div class="form-group">
        <label for="telefon">Telefon</label>
        <input type="text" class="form-control"  name="telefon">
      </div>
      <div class="form-group">
        <label for="subiect">Subiect</label>
        <input type="text" class="form-control"  name="subiect">
      </div>
      <div class="form-group">
        <label for="mesaj">Mesaj</label>
        <textarea class="form-control"  name="mesaj" rows="8"></textarea>
      </div>
      <input type="submit" name="insert" class="btn btn-theme" value="insert"></button>
    </form>

结果应该是我的MySQL中的数据。但数据库没有获取任何数据,我做错了什么?

最佳答案

您有两个表单标记,一个位于另一个内。

改变这个......

<form action="insert2.php" action="post">
<form role="form">

对此...

<form action="insert2.php" action="post">

另外,请注意,您的 PHP 代码对 SQL 注入(inject)是开放的。永远不要相信用户输入。在查询中使用用户输入的数据之前,始终验证和/或转义用户输入的数据。或者更好的是,使用 prepared statements或存储过程。

更新1:

好的,很遗憾听到这不起作用。请添加以下mysqli error debugging这样我们就可以看到发生了什么。

改变这个...

$result = mysqli_query($connect,$query);

对此...

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$result = mysqli_query($connect,$query)

if (!$result)) {
    printf("Errormessage: %s\n", mysqli_error($connect));
}

然后运行代码并查看是否出现任何可能对我们有帮助的错误。

更新2:

好的,尝试另一段调试。

此后...

$query = "INSERT INTO `amar` (`nume`, `email`, `telefon`, `subiect`, `mesaj`) VALUES ('$Nume','$Email','$Telefon','$Subiect','$Mesaj')";

添加此...

die($query);

保存并运行代码。

您将收到一个 SQL 查询。复制并粘贴该 SQL 查询并在数据库管理工具(例如 phpMyAdmin)中运行它。查看手动运行查询时是否添加了记录,或者是否出现任何错误。

让我们知道结果。

关于php - mysql 不更新 html/php 中的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940652/

相关文章:

php - 不使用 PHP 和 Ajax 使用 session 登录另一个页面

javascript - 当我初始化 Canvas 对象时,保留上下文引用是否更好

javascript - 如何动态添加和删除元素 JavaScript

javascript - 无法在本地计算机中将 Canvas 另存为图像

java - 如何从MySQL数据库获取数据到android

c# - Request.QueryString 找不到但有值

java - key 'PRIMARY' 的重复条目使用 JPA 持久保存到数据库中

php - 在PHP魔术方法上处理 “not found”案例的最佳方法是什么?

javascript - Base64上传图片问题

PHP 函数从 MySQL 数据库中进行选择并将结果传递到数组