数据库建立好之后,要设定系统的 DSN(数据来源名称),才能让网页可以知道数据库所在的位置以及数据库相关的属性。使用DSN的好处还有,如果移动数据库档案的位置,或是换成别种类型的数据库,只要重新设定 DSN 就好了,不需要去修改原来使用的程序。

说明

编辑

Data Source Name (DSN) [1]  的PDO命名惯例为:PDO驱动程序的名称,后面为一个冒号,再后面是可选的驱动程序连接数据库变量信息,如主机名、端口和数据库名。

参数

编辑

下面以MySQL为例:mysql:host=localhost;dbname=testdb。
DSN 前缀
前缀是mysql:
host
主机上的数据库服务器。
port
主机上数据库服务器监听的端口号。
dbname
数据库的名称。
unix_socket
MySQL的UNIX套接字(不应该被用于主机或端口)。
charset
字符集设置,请参考字符集设置 [2]  。
PHP 5.3.6之前,这个元素被忽略。同样的行为也可以部分地复制与PDO::mysql_attr_init_command驱动器选项,如下面的示例所示。
警告:在下面的例子中这个方法只能用于字符集共享相同的低7位表示为ASCII,如ISO-8859-1和UTF-8。使用不同字符集设置的用户(如UTF-16或Big5)必须使用PHP 5.3.6和以后的版本。
1
2
3
4
5
6
7
8
9
10
<?php
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
); 
 
$dbh = new PDO($dsn, $username, $password, $options);
?>

数据库DSN是什么的更多相关文章

  1. PHP 链接多种数据库 的方法

    数据库中  单词之间的空格(一个语句前面和后面做字符串拼接的时候最好留空格 )  可以随便加   其他地方  禁止随便加空格!!(加了 就报错)! =====================总结=== ...

  2. PHP访问数据库

    1.原生mysql方式 <?php //最原生态的访问方式,不过SQL注入是个麻烦事 $con = mysql_connect("localhost","root& ...

  3. go的数据库操作mysql

    go get github.com/go-sql-driver/mysql package main; import ( "database/sql" _ "github ...

  4. php类模块引擎PDO操作MySQL数据库简单阐述

    PDO是什么呢? 通俗说就是别人写的一个“数据库操作工具类”,它非常强大,可以应对市面上几乎所有主流数据库, 具体应用时候有这样一个关系: 即,要操作某种数据,就得去“打开”对应的pdo引擎. 在ph ...

  5. 数据库操作-go

    原版 import ( "database/sql" _ "github.com/go-sql-driver/mysql" "fmt" ) ...

  6. DSN 建立达梦7(DM)连接

    (DSN)Data Source Name 数据源名称 “ODBC数据源管理器”提供了三种DSN,分别为用户DSN.系统DSN和文件DSN.其中:      用户DSN会把相应的配置信息保存在Wind ...

  7. gin访问和使用数据库

    package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysq ...

  8. 在Tomcat中配置连接池和数据源

    1.DataSource接口介绍 (1)DataSource 概述 JDBC1.0原来是用DriverManager类来产生一个对数据源的连接.JDBC2.0用一种替代的方法,使用DataSource ...

  9. 利用redis List队列简单实现秒杀 PHP代码实现

    一 生产者producer部分 --------------------------------producer 部分注释--------------------------------------- ...

随机推荐

  1. 创建一个学生表student,默认的表空间为users,字段自定,同时为表的各个字段分别添加合适的约束,然后测试约束的验证状态。

    create table student(id number(4) constraint prim_key primary key,name varchar(8) not null,sex varch ...

  2. C++之运算符_算数运算符

    运算符 **作用:**用于执行代码的运算 | **运算符类型** | **作用** || -------------- | -------------------------------------- ...

  3. 【csp】2018-3

    第一题 跳一跳 题目: 题意:浅显.qwq 题解:2计数+1,到1就清空计数. 代码: #include<iostream> #include<cstdio> #include ...

  4. Error: setup script specifies an absolute path

    在安装sklearn的时候,出现: error: Error: setup script specifies an absolute path: /opt/xgboost-0.47/python-pa ...

  5. Django ORM 之 单表、多表查询

    返回ORM目录 Django ORM Django ORM 之一 内容目录: 一.单表查询 二.多表查询 0.准备工作 一些说明: - 表myapp_person的名称是自动生成的,如果你要自定义表名 ...

  6. sql(11) sum

    合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组.新建表 StudentSS_id G ...

  7. js数学公式-曲线运动

    ---勾股定理 a*a + b*b =c*c ---三角函数 正弦 : sin 余弦 : cos 正切 : tan 余切 : cot 正弦定理 a/sinA = b/sinB =c/sinC = 2r ...

  8. 【JZOJ5431】序列操作

    description 一开始有n个非负整数hi,接下来会进行m次操作,第i次操作给出一个数c[i],要求你选出c[i]个大于零的数并将它们减去1. 问最多可以进行多少轮操作后无法操作(即没有c[i] ...

  9. 【转载】OpenCL实现矩阵相乘

    矩阵相乘其实就是前一个矩阵的每一行乘以后一个矩阵的每一列,然后将乘后的每一个数字相加,得到结果矩阵的指定位置的数值.具体算法回顾一下线性代数即可.但是这种行列相乘其实都是独立的,如果是CPU计算必须串 ...

  10. duilib教程之duilib入门简明教程17.事件处理和消息响应

    界面的显示方面就都讲完啦,下面来介绍下控件的响应.    前面的教程只讲了按钮和Tab的响应,即在Notify函数里处理.其实duilib还提供了另外一种响应的方法,即消息映射DUI_BEGIN_ME ...