如何从另一个文件php验证mysql数据库连接

问题描述 投票:0回答:2

我创建了一个表单,用户可以在其中添加他的数据库名称,用户名,密码,主机。然后该表单将创建一个配置文件并添加用户数据库详细信息。表单在root用户中,配置文件在root / includes中。我想知道如何从表单文件验证数据库连接。如果连接成功,则可以进行下一步;如果不成功,我想显示错误。

Form

if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['db-details']) {

    $dbName = $_POST['dbName'];
    $dbUsername = $_POST['dbUsername'];
    $dbPassword = $_POST['dbPassword'];
    $dbHost = $_POST['dbHost'];

    $phConfigFile = 'includes/ph_config.php';

    file_put_contents($phConfigFile, $phConfigData);

}

Config

<?php 

    define("DB_HOST", "[dbHost]");

    define("DB_USER", "[dbUsername]");

    define("DB_PASS", "[dbPassword]");

    define("DB_NAME", "[dbName]");

    $connection = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
php mysql
2个回答
0
投票

所以,如果我说对了,您想知道用户输入的数据实际上是否有效,可以连接到服务器。未验证它。

您可以包括刚刚编写的文件并对其进行测试。

只需确保在包含之后使用相同的变量名。

if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['db-details']) {

 $dbName = $_POST['dbName'];
 $dbUsername = $_POST['dbUsername'];
 $dbPassword = $_POST['dbPassword'];
 $dbHost = $_POST['dbHost'];

 $phConfigFile = 'includes/ph_config.php';

 file_put_contents($phConfigFile, $phConfigData);

 include($phConfigFile);

 if ($connection->connect_errno) {
  //data for the connection isn't valid
  echo "Failed to connect to MySQL: " . $connection->connect_error;
  exit();
 }

}

0
投票

您真的想在创建配置文件之前检查连接,因此一旦创建,您就知道它可以工作

if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['db-details']) {

    $dbName     = $_POST['dbName'];
    $dbUsername = $_POST['dbUsername'];
    $dbPassword = $_POST['dbPassword'];
    $dbHost     = $_POST['dbHost'];

    $connection = mysqli_connect($_POST['dbHost'], 
                                $_POST['dbUsername'], 
                                $_POST['dbPassword'], 
                                $_POST['dbName']);

    if ($connection->connect_errno) {
        // do whatever you need to when the information passed does not work
    }

    // must be valid as we connected

    $str = '<?php' . PHP_EOL;
    $str .= 'define("DB_HOST", "' . $_POST['dbHost'] . '");'        . PHP_EOL;
    $str .= 'define("DB_USER", "' . $_POST['dbUsername'] . '");'    . PHP_EOL;
    $str .= 'define("DB_PASS", "' . $_POST['dbPassword'] . '");'    . PHP_EOL;
    $str .= 'define("DB_NAME", "' . $_POST['dbName'] . '");'        . PHP_EOL; 

    $str .= '$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);' . PHP_EOL;

    // create the config file in all confidence that the values will work
    file_put_contents($phConfigFile, $str);    
}
© www.soinside.com 2019 - 2024. All rights reserved.