我正在学习如何在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,您可以在那里设置一些调试失败。我是新来的,但你的布局和细节是无法回答没有更多。咕噜!