使用 PHP 将表单输入存储在 phpMyAdmin 数据库中


Storing form input in phpMyAdmin database with PHP

我正在尝试学习如何在PHP中使用数据库。

我的主html文件创建有点像登录表单。用作输入的数据被重定向到PHP文件,在那里它应该被打印并存储在数据库中。

<?php error_reporting(E_ALL);
        function db_con($data_array){
            $db = mysqli_connect("localhost", "root", "", "form") or die("Fehler beim Herstellen der Verbindung zur Datenbank!");
            mysqli_set_charset($db, 'utf8');
            mysqli_query($db, "
                INSERT INTO 'data'
                (
                    'E-Mail', 'Name', 'Bewertung', 'Kommentar', 'Thema'
                )
                VALUES
                (
                    '".$data_array['E-Mail']."',
                    '".$data_array['Name']."',
                    '".$data_array['Buchbewertung']."',
                    '".$data_array['Kommentar']."',
                    '".$data_array['Lieblingsthema']."'
                )
            ") or die("Fehler beim Schreiben der Datensätze!");
        }
            if(isset($_POST['name'], $_POST['email'], $_POST['rating'], $_POST['comment'], $_POST['interest'])){
            $data_array = array(
                    "Name" => $_POST['name'],
                    "E-Mail" => $_POST['email'],
                    "Buchbewertung" => $_POST['rating'],
                    "Kommentar" => $_POST['comment'],
                    "Lieblingsthema" => $_POST['interest']
                );
            echo "<th colspan='2'>Folgende Daten wurden übermittelt: </th>";
            echo "<br><br>";
                foreach($data_array as $key => $val){
                    echo "<tr><td><b>". $key. ": ". "</b></td><td>". $val. "</td></tr>";
                }
                db_con($data_array);
            }
        ?>

我不明白为什么它不起作用。没有错误,但脚本在mysqli_query后停止(最后输出:Fehler beim Schreiben der Datensätze!

有人可以帮助我为什么所有这些数据集都不会存储在数据库中以及如何修复它吗?

Guten Abend Stoger

数组的最大问题是没有输出和调试使用这个:

<pre>
  <?php print_r($_POST); print_r($_GET); ?>
</pre>

这将向您显示 POST 和 GET 值/也可以使用 print_r($data_array)。 使用 pre 标记使其格式化。 第一步是确保某些内容在开机自检中。 我没有看到表单或您从哪里获取用户输入。 通常表单会询问这个问题,然后将 POST 值分配给变量

即 $name = $_POST['名称']);

因此,在

php 页面中添加这些行,然后查看数组是否为空。 很可能是。 如果不是,那么您需要查看失败是否是 mysql 插入,如果没有插入,您可以在那里设置一些调试失败。 我是新手,但如果没有更多,您的布局和细节仍然无法回答。 格鲁斯!

if(isset($_POST['name'], $_POST['email'], $_POST['rating']$_POST['comment'], $_POST['interest'])){
                    $name = $_POST['name']);
                    $email = $_POST(['email']);
                    $rating = $_POST['rating']);
                    $comment = $_POST(['comment']);
                    $interest = $_POST(['interest']);

$sql = "INSERT INTO data ". "(E-Mail, Name, Bewertung, Kommentar, Thema) " . "VALUES('$email', '$name', '$rating', '$comment', '$e', '$interest')";
mysql_select_db('DATABASE NAME');
            $retval = mysql_query($sql, $conn); //$conn for your connection to database
            if(! $retval) {die('Could not enter data: ' . mysql_error());}}
}

我认为您没有来自"root"的正确凭据,您应该尝试与数据库的其他用户进行相同的更改。