PHP 连接 Mysql 数据库
在 PHP 中,连接的数据库通常是 Mysql,Mysql 和 PHP 在开发过程中,就像一对形影不离的兄弟。
对于 PHP 来说,连接 Mysql 数据库的方法常见的有三种,第一种用原生的方式去连接数据库,第二种用 Mysqli 拓展去连接数据库,第三种用 PDO 方式去连接。
如果你是 PHP 初学者或者新手,那么建议你先学会第一种原生方法即可。非菜鸟者,最好三种都掌握。
本文操作前提,操作数据库名:test123,操作表名:data,相应的 sql 创建语句:
//创建名为 test123 数据库 create database test123; //操作数据库 test123 use test123 //在数据库 test123 创建 data 表 create table data( id int(11) primary key, con varchar(20) ); //向 data 表里添加数据 insert into data value(1,'123'); insert into data value(2,'456');
在进行操作前,请你务必先了解 PHP 连接 Mysql 相关的一些函数,相关函数总结可以参见:http://php.net/manual/zh/ref.mysql.php 。
PHP原生方法连接Mysql
这里只详细介绍 mysql_connect 函数用法,语法:
resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )
相应参数说明
server MySQL 服务器。可以包括端口号,例如 "hostname:port",本地数据库一般为 localhost 。 username 数据库用户名。 password 密码。 new_link 如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。
代码实例:
<?php
//数据库服务器名称,本地一般为 localhost
$mysql_server_name="localhost";
// 连接数据库用户名
$mysql_username = "root";
//若密码为空,直接设置成:$mysql_password = "";
//否则这里修改为你自己的数据库密码
$mysql_password = "";
//连接数据库名
$mysql_database = "test123";
//创建连接
$con = mysql_connect($mysql_server_name, $mysql_username,$mysql_password) or die('连接失败');
//选择一个要操作的数据库
mysql_select_db($mysql_database,$con);
//执行 sql 语句,输出 data 表里面的内容
$sql = 'select * from data';
$result = mysql_query($sql);
//循环输出数据
while($temp_con = mysql_fetch_assoc($result)) {
echo "id为".$temp_con['id']."的内容为:".$temp_con['con']."<br/>";
}
?>
输出结果为:
id为:0的内容为:123 id为:1的内容为:456
如果你已经成功的操作了上面的实例,那么可以进一步了解 Mysqli 和 PDO 连接数据库的方法。
在 PHP 早期版本中我们使用 MySQL 扩展。PHP 5 及以上版本建议使用:MySQLi 和 PDO,MySQLi extension ("i" 意为 improved)
PDO (PHP Data Objects)。
MySQLi 和 PDO 哪个更有优势?
PDO 应用在 12 种不同数据库中, MySQLi 只针对 MySQL 数据库。
所以,如果你的项目需要在多种数据库中切换,建议使用 PDO ,这样你只需要修改连接字符串和部门查询语句即可。 使用 MySQLi, 如果不同数据库,你需要重新编写所有代码,包括查询。
两者都是面向对象, 但 MySQLi 还提供了 API 接口。
两者都支持预处理语句。 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的。
不管是在 window 还是 Linux 下,在操作 Mysqli 和 PDO 时,确保你已经安装其 Mysqli 或 PDO 拓展。
PHP 使用 MySQLi 连接
<?php
$servername = "localhost";
$username = "root";
$password = "123456";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "连接成功";
?>
PHP 使用 PDO 连接
<?php
$servername = "localhost";
$username = "root";
$password = "123456";
try {
$conn = new PDO("mysql:host=$servername;dbname=test123", $username, $password);
echo "连接成功";
}catch(PDOException $e)
{
echo $e->getMessage();
}
?>
注意在以上 PDO 实例中我们已经指定了数据库 (test123)。PDO 在连接过程需要设置数据库名。如果没有指定,则会抛出异常。
关闭连接
连接在脚本执行完后会自动关闭。你也可以使用以下代码来关闭连接:
实例 (MySQL - 面向过程) mysql_close($conn); 实例 (MySQLi - 面向对象) $conn->close(); 实例 (PDO) $conn = null;