PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MS SQL Server、SQLite,同样的,我...

使用PDO构造函数连接数据库及DSN详解

pdo是php5中新加入的数据库抽象层,为了解决访问不同数据库统一接口的问题。类似于PEAR::DB类和ADODB类的操作,不过它是直接封装再php扩展中,可以自由选择使用。

在上一篇《什么是PDO?PDO的概特点以及安装PDO的方法》中,我们介绍了什么是PDO,介绍了PDO的特点以及安装,那么我们这篇文章介绍PDO构造函数连接数据库以及DSN详情!

PDO构造函数连接数据库

在PDO中,要建立数据库的连接需要实例化 PDO 的构造函数,PDO构造函数的语法格式如下:_construct(string $dsn[,string $username[,string $password[,array $driver_options]]])

构造函数的参数说明如下:

dsn:数据源名称,包括主机名端口号和数据库名称。

username:连接数据库的用户名。

password:连接数据库的密码。

driver_options:连接数据库的其它选项。

那么我们下面直接用实例讲解,通过PDO连接 MySQL 数据库,具体代码如下:<?php

header("Content-Type:text/html; charset=utf-8"); //设置页面的编码格式

$dbms = "mysql"; // 数据库的类型

$dbName ="php_cn"; //使用的数据库名称

$user = "root"; //使用的数据库用户名

$pwd = "root"; //使用的数据库密码

$host = "localhost"; //使用的主机名称

$dsn = "$dbms:host=$host;dbName=$dbName ";

try{ //捕获异常

$pdo = new PDO($dsn,$user,$pwd); //实例化对象

echo "PDO连接数据库成功";

}catch (Exception $e){

echo $e->getMessage()."
";

}

页面输出的结果如下图:

注意:如果上面有的地方填错了,会通过try catch语句抛出异常!

DSN详解

什么是DSN?

DSN是Data Source Name(数据源名称)的首字母缩写。DSN提供连接数据库需要的信息。PDO的DSN包括3部分:PDO驱动名称(如:mysql、sqlite或者pgsql)、冒号和驱动特定的语法。每种数据库都有其特定的驱动语法。

在使用不同的数据库时,必须明确数据库服务器是完全独立与 PHP 的,是实体。但是在实际的情况可能是数据库服务器与 Web服务器不在同一台计算上,此时需要通过PDO连接数据库时,就修改DSN中的主机名称。

由于数据库服务器只是特定的端口上监听连接请求。每种数据库服务器具有一个默认的端口号(MySQL 是3306),但是数据库管理员可以对端口号进行修改,因此有可能 PHP找不到数据库的端口号,此时就可以在 DSN中包含端口号。比如:$dsn="mysql:host=127.0.0.1;port=3306;dbname=admin";

由于一个数据库中可能同时拥有多个数据库,所以通过DSN连接数据库时,通常都包括数据库名称,这样可以确保连接的是用户想要的数据库,而不是其他的数据库了!

关于使用PDO构造函数连接数据库和DSN详解我们就介绍到这里,大家可以在本地测试一下,那么我们下面给大家介绍 PDO中执行SQL语句的几种方法,具体请阅读《PDO中执行SQL语句的三种方法》!

pdo mysql dsn_使用PDO构造函数连接数据库及DSN详解相关推荐

  1. PDO连接数据库及DSN详解

    PDO构造函数 在PDO中,要建立与数据库的连接需要实例化PDO的构造函数,PDO构造函数的语法如下: __construct(string $dsn[,string $username[,strin ...

  2. [Python从零到壹] 八.数据库之MySQL和Sqlite基础知识及操作万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. php mysql修改命令_PHP编程:mysql alter table命令修改表结构实例详解

    <PHP编程:mysql alter table命令修改表结构实例详解>要点: 本文介绍了PHP编程:mysql alter table命令修改表结构实例详解,希望对您有用.如果有疑问,可 ...

  4. mysql int(3)与int(11)的区别详解

    这篇文章主要介绍了mysql int(3)与int(11)的区别详解的相关资料,需要的朋友可以参考下 mysql int(3)与int(11)的区别 总结,int(M) zerofill,加上zero ...

  5. mysql gz 安装_Linux下安装mysql 5.7.17.tar.gz的教程详解

    1.创建MySQL组和mysql用户 groupadd mysql useradd -r -g mysql mysql 2.拷贝: cp -R mysql-5.7.16-linux-glibc2.5- ...

  6. MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!

    MySQL 5.7主从复制从零开始设置及全面详解--实现多线程并行同步,解决主从复制延迟问题! 参考文章: (1)MySQL 5.7主从复制从零开始设置及全面详解--实现多线程并行同步,解决主从复制延 ...

  7. MySQL Installer 8.0.21安装教程图文详解 转载

    MySQL Installer 8.0.21安装教程图文详解 原地址 1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MyS ...

  8. mysql安装后目录介绍,MySQL安装后的目录结构及配置文件详解

    MySQL安装后的目录结构及配置文件详解 MySQL安装后的目录结构及配置文件详解 MySQL目录结构说明 MySQL 安装完成后,会在磁盘上生成一个目录,该目录就被称为 MySQL 的安装目录. M ...

  9. Mysql配置文件my.cnf配置及配置参数详解

    Mysql配置文件my.cnf 安装了mysql没有my.cnf文件的情况 1.可以把mysql的示例配置文件,如my-medium.cnf拷贝到/etc/my.cnf,再去修改/etc/my.cnf ...

最新文章

  1. Redis 高级特性(4)— 单线程架构
  2. 异常“本机框架位于调用堆栈顶部,因此无法计算表达式的值”的解决办法
  3. vc中ASSERT()和VERIFY()区别
  4. 538.把二叉搜索树转换为累加树(结合自己的理解解释一下别人题解的递归部分)
  5. android点击获得坐标,android点击MapView任意一点获得坐标
  6. 连接MySQL时出现警告Establishing SSL connection without server's identity verification is not recommended.
  7. StringUtils 中 isEmpty 和 isBlank 的区别
  8. pytest与unittest区别
  9. 使用bootstrap-table简化CRUD
  10. Query and transform XML
  11. React Native ActivityIndicator(菊花组件)
  12. mac rz sz的使用
  13. Delphi 播放wav声音
  14. inav向STM32F401CCU开发板定制的过程(一)
  15. XDroid 轻量级的Android快速开发框架
  16. Eterm系统出-航空公司大系统-PID放大软件-IBE查询接口 QQ 799670351 15075679773
  17. 3D STL文件解析
  18. OA协同办公系统-day01
  19. 无法打开计算机开始菜单,开始菜单,教您开始菜单无法打开
  20. Eel——js 如何调用python的函数

热门文章

  1. web前端学习笔记26-事件类型——一般事件、页面事件、表单事件
  2. Maximum Likelihood (MLE) Maximum a posteriori (MAP)的分別
  3. 安卓手机手电筒不见了?
  4. 摘要-The Inventor Mentor
  5. 堆和栈是什么?有哪些区别?
  6. AI 操控战斗机战胜飞行员?道翰天琼认知智能机器人平台API接口大脑为您揭秘-3。
  7. 红米note2位置服务器,红米Note2
  8. Java并发包中常用类
  9. Win11 “qq无法访问个人文件夹”解决方法(原创)
  10. 连接共享打印机提示【操作失败,错误为0x0000011b】