Php 什么是';无DSN和x27;选项在创建DB服务器连接时的含义?
在TestLink中,我在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[
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;