我正在学习如何在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_查询之后停止(最后输出:fehler beim schreiben der datens_tze!).
有人能帮我解释为什么所有这些数据集都不会存储在数据库中,以及如何修复它吗?

最佳答案

古滕·阿本德·斯托格
数组的最大问题是没有输出和调试
使用这个:

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

这将显示post和get值/也可以使用print r($data_array)。使用预标记使其格式化。第一步是确保邮件中有内容。我看不到表单或从何处获取用户输入。通常一个表单会询问这个问题,然后将post值赋给变量
也就是说,$name=$_post['name']);
所以在php页面中添加这些行,然后查看数组是否为空。很可能是。如果不是,那么您需要查看失败是否是mysql insert,如果没有insert,您可以在那里设置一些调试失败。我是新来的,但你的布局和细节是无法回答没有更多。咕噜!

10-05 20:58
查看更多