php - 数据不会从 HTML 表单传递到数据库

标签 php html mysql forms

我是 PHP 的新手,我不确定自己做错了什么。我可以打开 html 表单并提供数据,但是当我点击提交时,它显示了 php 代码并且数据库(显然)没有更新。我已经尝试通过 phpMyAdmin 手动将值插入到表中并且它有效。我在网上看过,但我的语法看起来很好(对我来说)。我做错了什么吗?如果错误不是太明显,是否有有效的调试方法(即查看错误)?

我有这个HTML代码

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Hotel Start Page</title>
</head>

<body>
<form action="customerCreate.php" method="post">
<fieldset><legend>Enter your information in the form below:</legend>
<header align="center">   <b>Customer Sign Up</b></header>
<p><b>Surname:            </b><input type="text" name="surname" size="30" maxlength="40"/></p>
<p><b>Name:               </b><input type="text" name="name" size="30" maxlength="40"/></p>
<p><b>E-mail:             </b><input type="text" name="email" size="30" maxlength="40"/></p>
<p><b>Telephone:          </b><input type="text" name="tel" size="30" maxlength="10"/></p>
<p><b>Password:           </b><input type="password" name="passwd" size="30" maxlength="10"/></p> 
</fieldset>
<div align="center"><input type="submit" name="submit" value="Create Account"/></div>
</form>

</body>

这段PHP代码

<?php

 $host = 'localhost';
 $username = 'root';
 $password = '';
 $db = 'my_hotel';

 $conn = new mysqli($host,$username,$password,$db);

if ($conn->connect_error) {
  die("Connection Error: " .$conn->connect_error);
}

$sname = $_POST['surname'];
$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$passwd = $_POST['passwd'];

$sql = "INSERT INTO Customer (sname, name, email, tel, passwd) VALUES 
(?,?,?,?,?)";

$stmt = $conn->prepare($sql);
$stmt->bind_param("sssss",$sname,$name,$email,$tel,$passwd);
$stmt->execute();

$cid = "SELECT cid FROM Customers WHERE sname='$sname' AND passwd='$passwd' ";
$result = $conn->query($cid);
$row = $result->fetch_assoc();

echo "Customer Added.<br>";
echo "Your Customer ID is ".$row['cid'];

$stmt->close();
$conn->close();

?>

这张表在 phpMyAdmin 中名为 My_hotel 的数据库中

CREATE TABLE Customer (
   cid INT AUTO_INCREMENT,
   sname VARCHAR(15),
   name VARCHAR(15),
   email VARCHAR(15),
   tel VARCHAR(15),
   passwd VARCHAR(15),
   PRIMARY KEY (cid)
);

最佳答案

如果你得到php代码,那肯定是你的应用不在你的web服务器中,所以浏览器下载了源文件。您应该将您的文件复制/同步到/与(可能)/var/www/html

看看这个:http://thisinterestsme.com/php-displayed-in-browser/

关于php - 数据不会从 HTML 表单传递到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48559876/

相关文章:

php - HTML 表单标签自动完成 ="off"属性不适用于 chrome 浏览器

MySQL断言

php - php mysql 比较之前的请求值和当前值

php - 如何根据条件计算多行

php - 如何将列值添加到 SQL LIKE 查询?

javascript - 使用我的 "DragEnter"和 "Dreagleave"函数在 Firefox 浏览器上进行 Knockout.js 拖放操作时出现问题

Mysql WHERE 可选

PHP 准备语句非对象错误

php - 向 Blade 中的日期字段添加三个小时

html - 使用 flex 布局时 Chrome 滚动条损坏