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;