php - MYSQL 使用 php 和 html 表单插入数据库
问题描述
我正在尝试使用 php 和 html 表单插入 MYSQL 数据库。当我按下提交它说一个项目插入成功但是当我登录到 phpmyadmin 表是空的?
我的 html 表单代码是creon.html
.
<form name="bmr_calc" action="https://cs1.ucc.ie/~lmm12/Project/creon.php" method="POST" id="BMRform">
<h1 id="info">Creon Calculator</h1>
<table>
<tr>
<td colspan="2" align="center">I take one: <br>
<input type="radio" name="creon1" value="10" required> Creon 10,000
<input type="radio" name="creon1" value="25" required> Creon 25,000
<br>per <input type="text" name="creon3" required>g of fat
</td>
</tr>
<br>
<tr>
<td>There are:</td>
<td><input type="text" name="creon4" required>g of fat in the item I'm about to eat</td>
</tr>
</table>
<td><input type="submit" value="Submit" style="float:center">
<br>
<img src="img/regpic.jpg" alt="reg" id="reg">
<br>
</td>
</form>
我的 php 代码是creon.php
,它保存在我的大学服务器上;
<?php
$creon1 = $_POST['creon1'];
$creon3 = $_POST['creon3'];
$creon4 = $_POST['creon4'];
if (!empty($creon1) || !empty($creon3) || !empty($creon4)) {
$host = "cs1.ucc.ie";
$dbUsername = "lmm12";
$dbPassword = "----";
$dbname = "mscim2018_lmm12";
//create connection
$conn = new mysqli($host, $dbUsername, $dbPassword, $dbname);
if (mysqli_connect_error()) {
die('Connect Error('. mysqli_connect_errno().')'. mysqli_connect_error());
} else {
$INSERT = "INSERT Into creon (creon1, creon3, creon4) values(?, ?, ?)";
//Prepare statement
$stmt = $conn->prepare($INSERT);
$stmt->bind_param("sss", $creon1, $creon3, $creon4);
$stmt->execute();
echo "New record inserted sucessfully";
$stmt->close();
$conn->close();
}
} else {
echo "All field are required";
die();
}
解决方案
这似乎是 MySQL 中的类型问题或 PHP 代码中的类型问题
可以肯定的是,从creon表上传您的数据类型, 也就是字段 varchars、text 等。
请注意 bind_param 周围的 if/else 语句,您也需要这样做,以防万一有些事情不太正确,还要在语句中大写 INTO。
我运行了以下内容:
<?php
$creon1 = $_POST['creon1'];
$creon3 = $_POST['creon3'];
$creon4 = $_POST['creon4'];
if (!empty($creon1) || !empty($creon3) || !empty($creon4)) {
$host = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbname = "quick";
//create connection
$conn = new mysqli($host, $dbUsername, $dbPassword, $dbname);
if (mysqli_connect_error()) {
die('Connect Error('. mysqli_connect_errno().')'. mysqli_connect_error());
} else {
$test = "INSERT INTO testing (creon1, creon3, creon4) values(?, ?, ?)";
//Prepare statement
$stmt = $conn->prepare($test);
if ($stmt != false)
$stmt->bind_param("sss", $creon1, $creon3, $creon4);
else
print("Returns false");
$stmt->execute();
echo "New record inserted sucessfully";
$stmt->close();
$conn->close();
}
} else {
echo "All field are required";
die();
}
?>
提交表单后它给了我这个结果:
在我的数据库中,它插入了行:
推荐阅读
- debian - mips debian中的mips固件:chroot非法指令
- php - 限制上传内容仅查看管理员用户
- ios - 我们如何打印在 Main.storyboard 源代码中生成的 UIElement 的 id
- javascript - 将矩阵列实现为类似对象的数组
- python - 张量流2中的ConvLSTMCell
- sql - 在 Create 函数中使用连接 - Postgres 错误
- javascript - 检测查看网站的人是否是开发人员
- pdf - 从 MS Word 文档中保留 PDF 导出文档中的引用链接
- c++ - 简化包含变量名和函数输出的 C++ 模式
- r - open.connection(x, "rb") 中的错误:HTTP 错误 404,使用 read_html 函数