根据html表单连接特定的MySQL数据库

时间:2017-07-24 09:27:10

标签: php html mysql

我想要做的是根据html表单的值连接到特定的数据库,首先是可能的吗?

我有一些建议的代码:

这是我在上一页的表格:

<form method="post" action="connexion.php">
                  <li> <strong><b>Aircraft</b></strong> : <input type="text" name="Aircraft" placeholder="MRJ" /><br /> </li>
                  <li> <strong><b>Systeme</b></strong> : <input type="text" name="Systeme" placeholder="ATAXX" /><br /> </li>
                  <li> <strong><b>Projet</b></strong> :  <input type="text" name="Projet" placeholder="CMA" /><br /> </li>
                  <br />
                 <input type="submit" value="Submit">

我的connexion.php代码:

 <?php
/* Database credentials. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '@Rugby3390');
define('DB_NAME', 'ata."$Systeme"');

/* Attempt to connect to MySQL database */
$mysqli = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

// Check connection
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);
}
header("location: ../FailureCondition/failurecondition$_POST[Systeme].php");
?>

所以,如果您能理解我,根据在Systeme中输入的数据,我想连接到一个名为ata(用户输入)的特殊数据库,并重定向到页面whit,还有名为failurecondition(用户)的用户输入信息.PHP

我的代码有什么问题?

THX

2 个答案:

答案 0 :(得分:0)

如果尚未关闭html页面中的表单标记(--- - hosts: localhost gather_facts: no vars: domaenenliste: "01": dhcp_start: 10.43.12.0 dhcp_ende: 10.43.15.254 server_id: 3 "15": "16": dhcp_start: 10.43.128.26 dhcp_ende: 10.43.131.255 server_id: 2 tasks: - set_fact: domaenenliste: "{{ domaenenliste | combine(new_leaf) }}" vars: new_leaf: "15": partner: foobar - debug: msg: "{{ domaenenliste }}" )。试试这个:

</form>

答案 1 :(得分:0)

虽然Nirav和Arkits&#39;解决方案应该解决问题,从根本上错误定义变量的常量会让我感到震惊。我建议这更正确:

$mysqli = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD,$_POST['Systeme']);

此外,与此处的情况一样,在您的应用程序具有多个数据库的情况下,在查询中使用隐​​式数据库可能会在以后引起痛苦。如果数据库的分离只是一个组织问题,那么更好的方法是在查询中明确引用数据库:

$activeDB=$_POST['Systeme'];
$sql="SELECT * FROM ${activeDB}.atable";

OTOH如果它旨在提供可扩展性,那么你的代码就不能解决这个问题 - 你应该使用类似的东西:

$dbs=array(
   'db1'=>array(
       'user'=>'mysqluser', 'host'=>'localhost', 'password'=>'s3cr3t'
   ),
   'db2'=>array(
       'user'=>'mysqluser', 'host'=>'localhost', 'password'=>'s3cr3t'
   ),
   'db3'=>array(
       'user'=>'other', 'host'=>'192.168.22.4', 'password'=>'swordfish'
   )
   ...
);
$use=$dbs[$_POST['Systeme']];
if (!is_array($use)) {
    ...
}
$mysqli = new mysqli($use['host'], $use['user'], $use['password'], $_POST['Systeme']);