PHP 5 及以上版本建议使用以下方式连接 MySQL :

  • MySQLi :MySQLi 只针对 MySQL 数据库,MySQLi 还提供了 API 接口。
  • PDO (PHP Data Objects):PDO 应用在 12 种不同数据库中。

共同点:

  1. 两者都是面向对象

  2. 两者都支持预处理语句。 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的。

确保wamp里已经安装好了MySQLi或PDO,查看方式:echo phpinfo();

接下来将会使用以下三种方式来演示 PHP 操作 MySQL:

  • MySQLi (面向对象)
  • MySQLi (面向过程)
  • PDO

1. MySQLi - 面向对象

<?php
header('Content-Type: text/html;charset=utf-8'); //echo phpinfo(); // MySQLi面向对象
// 在我们访问MySQL数据库之前,我们需要先连接到数据库服务器
$servername = "localhost";
$username = "root";
$password = ""; // 创建连接
$conn = new mysqli($servername, $username, $password); // 检测连接
if($conn -> connect_error)
{
die("连接失败:". $conn->connect_error);
} echo "连接成功";
?>

2.  MySQLi - 面向过程

<?php
header('Content-Type: text/html; charset=utf-8'); // MySQLi - 面向过程
$servername = "localhost";
$username = "root";
$password = ""; // 创建连接
$conn = mysqli_connect($servername, $username, $password); // 检测连接
if(!$conn)
{
die("连接失败:" . mysqli_connect_error());
} echo "连接成功";
?>

3. PDO连接MySQL数据库

PDO要设置数据库名,如果没有指定,则会抛出异常

<?php
header('Content-Type: text/html; charset=utf-8'); // PDO连接MySQL数据库
// PDO要设置数据库名,如果没有指定,则会抛出异常 $servername = "localhost";
$username = "root";
$password = "";
$dbname = "mugua"; try
{
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
echo "连接成功";
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>

连接在脚本执行完毕后会自动关闭,也可以使用代码关闭连接:

MySQLi - 面向对象

$conn->close();

MySQLi - 面向过程

mysqli_close($conn);

PDO

$conn = null;

PHP连接MySQL数据库的几种方式的更多相关文章

  1. PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)

    PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案. P ...

  2. php连接MySQL数据库的三种方式(mysql/mysqli/pdo)

    引言 PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 .PHP的mysqli扩展 .PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案 ...

  3. PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续

    2.PHP与Mysqli扩展,面向过程.对象 <?php $mysql_conf = array( 'host' => '127.0.0.1:3306', 'db' => 'test ...

  4. C++连接mysql数据库的两种方法

    本文主要介绍了C++连接mysql数据库的两种方法,希望通过本文,能对你有所帮助,一起来看. 现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用a ...

  5. plsql 连接oracle数据库的2种方式

      plsql 连接oracle数据库的2种方式 CreationTime--2018年8月10日09点50分 Author:Marydon 方式一:配置tnsnames.ora 该文件在instan ...

  6. ThinkPHP中连接mysql数据库的四种实用和通用的连接方法

    ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库适配器来处理.目前的数 ...

  7. Eclipse通过jdbc连接sqlserver2008数据库的两种方式

    数据库登录身份验证方式有两种     其中服务器名称即为安装SQLServer2008的电脑,充当数据库服务器,在笔者这里就是自己的电脑名称. 身份验证方式有两种:windows身份验证和SQLSer ...

  8. 使用EntityFramework6连接MySql数据库(db first方式)

    准备工具: VS2013.MySQL For VisualStudio 1.1.4.Connector/Net 6.8.3(百度网盘里) 程序包管理器执行命令: Install-Package Ent ...

  9. 登录进入Mysql数据库的几种方式

    前提:连接进入mysql数据库 本机安装的myslq基础信息: host= "localhost", # 数据库主机地址:127.0.0.1 port=3306, # 端口号 us ...

随机推荐

  1. win7运行nodejs,返回IPV6:::ffff:127.0.0.1

    问题: 在win7上使用telnet连接node生成的服务器,在获取ip的过程中出现的问题. win7默认开启IPV6,所以获取的IP地址带有::ffff:前缀. 如果程序中使用到了IP地址,有可能会 ...

  2. php 替换 oracle 数据字段中“看不见”换行符号

    工作需要,把oracle中的数据导出csv,导出代码如下:<?php$file_name = "申請書承認(予定休出).csv";header("Content-D ...

  3. P4219 [BJOI2014]大融合

    传送门 动态维护森林 显然考虑 $LCT$ 但是发现询问求的是子树大小,比较不好搞 维护 $sum[x]$ 表示节点 $x$ 的子树大小,$si[x]$ 表示 $x$ 的子树中虚儿子的子树大小和 那么 ...

  4. 能量项链 (区间DP)

    能量项链 (区间DP) 问题引入 能量项链 洛谷 P1063 思路 诸如此类不能线性规划的问题要用到区间DP,区间DP一般就是三层循环,第一层表示区间长度(本题即\(n\)),第二层枚举起点并根据第一 ...

  5. UVA - 10298 后缀数组(仅观赏)

    题意:求最小循环节 \(KMP\)可以20ms通过,而\(da\)实现的后缀数组并无法在3000ms内通过 听说要用\(dc3\)才勉强卡过,这里仅列出\(da\)实现 #include<ios ...

  6. HDU - 1427 / UESTC - 1252 经典dfs

    很好奇为什么hzwer那种稍改一下还是无法过样例,代码我没看出问题 换了一种用桶组合挑取两个数不断回溯的做法 这是HDU1427的代码,后者改一改就行了 #include<bits/stdc++ ...

  7. 动态规划算法解析网页中的内容 JavaScript

    function getInfo(html){ //去掉注释 html=html.replace(/<!--.+?-->/g,"") var arrP=[] var r ...

  8. linux下的常见信号总结

    在linux下有很多信号,按可靠性分为可靠信号和非可靠信号,按时间分为实时信号和非实时信号,linux进程也有三种方式来处理收到的信号: (1)忽略信号,即对信号不做任何处理,其中,有两个信号不能忽略 ...

  9. mongodb 增查改删

    我们在  MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1  中学习了如果安装部署一个 MongoDB 如果没看到我的金玉良言的话,就重新打开一次客户端和服务端吧 本章我们 ...

  10. Python基础 (上)

    参考:菜鸟教程    Python用途 目录 一.数据类型 二.运算符 三.条件和循环控制语句 四.函数 五.模块 六.输入与输出 一.数据类型 string.list和tuple都属于sequenc ...