php - 如何使用 PHP switch 语句在数据库中插入值
问题描述
<?php
$name_user = $_POST['name'];
$city_user = $_POST['the_city'];
$conn = mysqli_connect('127.0.0.1','root','123','people');
mysqli_query($conn, "INSERT INTO people_data (name, the_city) VALUES ('$name_user','$city_user')");
echo "Data has been added:";
echo "<br/>";
echo "Name : $name_user";
echo "<br/>";
echo "The city ";
switch ($city_user)
{
case "01":
echo "London";
break;
case "02":
echo "New York";
break;
case "03":
echo "Bali";
break;
default:
echo "Unknown City";
}
?>
我已经运行了代码,但它返回错误:注意:未定义索引:第 7 行 /opt/lampp/htdocs/add.php 中的 the_city
我看到名称已添加,但表 people_data 中的城市仍为空白。我猜错误在switch语句中,但我不知道错误在哪里。
表 people_data 中的预期结果:the_city 包含 01 或 02 或 03 之类的值
我忘了添加html文件,html文件:
<!DOCTYPE HTML>
<HTML>
<body>
<p>
Add Data
<br/>
<form action="add.php" method="post">
Name : <input type="text" name="name" /><br/>
The city :
<select>
<option value = "01">London</option>
<option value = "02">New York</option>
<option value = "03">Bali</option>
</select>
<input type="submit" value="Send">
</form>
</p>
</body>
</HTML>
我运行html文件..
解决方案
问题是你$_POST['the_city']
是NULL
因为你不通过 POST 发送它。您的<select>
标签没有参考名称。正确的代码如下所示。
<select name="the_city">
...
</select>
此外,请考虑在 PHP 中使用 isset() 方法。
if (isset($_POST['the_city]))
{
//your variable has been initialized
}
推荐阅读
- c# - 使用 c# 启动 Rust 服务器
- date - 如何在 Jekyll 中输入 YYYYMM 日期?
- react-native - 如何使用 Flutter 或 React Native 访问 NFC 功能?
- r - 在图像中,Hadley 在应用矩阵子集时简化是什么意思?
- java - 如何使用杰克逊将字段反序列化为对象?
- identityserver4 - 用于令牌清理的 IdentityServer 事件
- matplotlib - 考虑登录 ytick 标签调整
- mysql - 使用 MAMP 或 XMAPP for Windows 安装的 MYSQL 版本较旧
- wordpress - 多个自定义帖子查询不起作用
- wordpress - Mailchimp RSS 活动仅包含 1 个帖子