我正在寻找将数据输入不同数据库的最佳方式。现在我有一个带有下拉菜单的页面,询问他们想要输入什么数据库,然后该页面将您带到一个表单页面,您可以在其中键入信息。我遇到的问题是if语句无法正常工作。
<form action="test.php" method="GET">
<select name="dropdown">
<option value="a">Database1</option>
<option value="b">Database2</option>
<input type="submit">
</select>
</form>
<?php
if(isset($_GET['dropdown']) && $_GET['dropdown'] === 'a'){
include 'test.php';
} else if($_GET['dropdown'] === 'b'){
include 'Test2.php';
}
?>
无论是否点击Database1
或Database2
,我仍然会登陆第一个测试页。现在,我假设这是因为下拉列表的操作是第一个test.php
页面,但我不确定我需要更改它以便合并所有3个选项。
我觉得即使我让这个工作,也必须有一个更有效的方法来做到这一点。也许我可以让用户从下拉菜单中选择一个页面,然后他输入的任何数据都将被发送到正确的数据库。
答案 0 :(得分:1)
我认为这就是你想要的......
if(isset($_GET['dropdown']) && $_GET['dropdown'] === 'a') {
// the rest of ur code
}
答案 1 :(得分:1)
您已修改了问题,但原始代码未显示。
根据您的original post
您的代码失败的原因是您没有检查是否设置了任何内容或是否等于传递的值,也没有分配任何GET变量。
如果您选择第3个选项或使用第3个条件,您还需要else
,即:if($_GET['dropdown'] === 'c'){...}
if(isset($_GET['dropdown']) && $_GET['dropdown'] === 'a') {
include 'test.php';
// echo "A chosen";
} else if($_GET['dropdown'] === 'b'){
include 'Test2.php';
// echo "B other";
}
else if($_GET['dropdown'] === 'c'){...}
echo "Other, C chosen";
}
旁注:我注意到您使用的是混合大小写的文件。
test.php
和Test2.php
- 在Linux系统上,test2.php
和Test2.php
不一样,如果这是导致您可能遇到的错误的原因。< / p>
在打开<?php
标记后立即将错误报告添加到文件顶部
error_reporting(E_ALL); ini_set('display_errors', 1);
看看它是否会产生任何结果。
如果您的整个代码都位于同一页面内,请使用action=""
代替action="test.php"
,这是我在此处测试代码时所做的,我怀疑这可能是问题或贡献的代码。< / p>
答案 2 :(得分:0)
是的,是的,使用新版本的PHP和MYSQLi函数在不同的数据库中插入输入
$db=new mysqli('localhost','root','');
if($db->connect_errno > 0 )
{
die("Unable to connect data base");
}
if(isset($_GET["dropdown"]) && $_GET["dropdown"]=="a")
{
$sql="insert into database1.tblTest(name) values('".$_GET["txtName"]."')";
} else if(isset($_GET["dropdown"]) && $_GET["dropdown"]=="b"){
$sql="insert into database2.tblTest(name) values('".$_GET["txtName"]."')";
}
if(!$result=$db->query($sql))
{
die("there was an error: ".$db->error);
}
else
{
echo "Saved...";
}
使用新版本我的PHP和MYSQLi功能有两个优点 1.您可以在选择数据库中插入输入 2.而MYSQLi函数是Mysql的改进功能,它可以防止SQL注入
谢谢......