Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么是';无DSN和x27;选项在创建DB服务器连接时的含义?_Php_Mysql - Fatal编程技术网

Php 什么是';无DSN和x27;选项在创建DB服务器连接时的含义?

Php 什么是';无DSN和x27;选项在创建DB服务器连接时的含义?,php,mysql,Php,Mysql,在TestLink中,我在installNewDB.php脚本中的数据库连接中找到了一个NO_DSN选项。我从来没有听说过NO\u DSN,我想知道是否有人能给我解释一下: 见第163-180行(): //无需选择特定数据库即可连接到DB服务器 $db=新数据库($db\u类型); 定义('NO_DSN',FALSE); @$conn\u result=$db->connect(无DSN、$db\u服务器、$db\u管理员\u名称、$db\u管理员\u通行证); 如果($conn_result[

在TestLink中,我在
installNewDB.php
脚本中的数据库连接中找到了一个
NO_DSN
选项。我从来没有听说过
NO\u DSN
,我想知道是否有人能给我解释一下:

见第163-180行():

//无需选择特定数据库即可连接到DB服务器
$db=新数据库($db\u类型);
定义('NO_DSN',FALSE);
@$conn\u result=$db->connect(无DSN、$db\u服务器、$db\u管理员\u名称、$db\u管理员\u通行证);
如果($conn_result['status']==0)
{
echo'失败!

请检查 数据库登录详细信息,然后重试。“; 回显'
数据库错误消息:'.$db->Error_msg()。“
”; 关闭_html_和_exit(); } 其他的 { 回音“OK!

”; } $db->close(); $db=null;

这里的含义是什么?:定义(“否””,FALSE)


这里:$db->connect(无DSN,$db\u server,$db\u admin\u name,$db\u admin\u pass)

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

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

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

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

mysql:host=localhost;dbname=测试;端口=3306;字符集=utf8mb4


因此,在您的情况下,“NO_DSN”选项似乎默认为false,除非您指定了连接字符串。

它与您正在使用的代码有关,您必须在该代码中找到它的用法。DSN=数据源名称。不是DNS
// 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;