“ NO_DSN”选项在创建数据库服务器连接时意味着什么?

时间:2019-03-05 20:24:38

标签: php mysql

在TestLink中,我在NO_DSN脚本的数据库连接中找到了一个installNewDB.php选项。我从未听说过NO_DSN,并且想知道是否有人可以向我解释:

请参见第163-180行(https://github.com/viglesiasce/testlink/blob/master/install/installNewDB.php):

// Connect to DB Server without choosing an specific database
$db = new database($db_type);
define('NO_DSN',FALSE);
@$conn_result = $db->connect(NO_DSN,$db_server, $db_admin_name, $db_admin_pass); 
if( $conn_result['status'] == 0 ) 
{
    echo '<span class="notok">Failed!</span><p />Please check 
                              the database login details and try again.';
    echo '<br>Database Error Message: ' . $db->error_msg() . "<br>";

    close_html_and_exit();
} 
else 
{
    echo "<span class='ok'>OK!</span><p />";
}
$db->close();
$db=null;

这是什么意思?:define(' NO_DSN ',FALSE);

此处:$ db-> connect( NO_DSN ,$ db_server,$ db_admin_name,$ db_admin_pass);

2 个答案:

答案 0 :(得分:-1)

在这种情况下,DSN指的是“数据源名称”。

它可以是一个可选的连接字符串,您可以将其传递给数据库以设置其他选项,例如数据库驱动程序,主机,数据库名称,字符集,端口等。

使用PDO的DSN字符串示例如下:

mysql:host=localhost;dbname=test;port=3306;charset=utf8mb4

因此,在您的情况下,除非您指定连接字符串,否则看起来'NO_DSN'选项默认为false。

答案 1 :(得分:-2)

DNS是一台服务器,可翻译网站的地址,以便您的浏览器可以连接到它们。如果地址过期或服务器出现问题,您将遇到DNS错误,即使具有Internet访问权限也无法连接到特定站点或站点组。