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

时间:2016-02-23 21:00:27

标签: php html mysql database

我正在尝试学习如何在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 SchreibenderDatensätze!)。

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

3 个答案:

答案 0 :(得分:1)

Guten Abend Stoger

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

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

这将显示POST和GET值/也可以使用print_r($ data_array)。使用预标签,使其格式化。第一步是确保某些东西在POST中。我没有看到表单或用户输入的内容。通常表单会询问此情况,然后将POST值分配给变量

即。 $ name = $ _POST ['name']);

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

{{1}}