在php中连接mysql数据库有多种方式,本文将介绍其中比较常用的几种连接方式。
- 使用mysqli扩展连接mysql
mysqli扩展是在PHP5.0之后引入的一个面向对象的扩展库,比较适合进行大量数据的读写操作。
连接mysql的示例代码:
$mysqli = new mysqli('localhost', 'user', 'password', 'database');if ($mysqli->connect_errno) { die('Connect Error: ' . $mysqli->connect_error);}
在实例化mysqli对象时,传递4个参数,分别是主机名、用户名、密码和要连接的数据库名。如果连接失败,可以通过connect_errno和connect_error属性获取错误信息。
- 使用PDO扩展连接mysql
PDO(PHP Data Objects)扩展库是一个轻量级的数据库访问抽象层,通过PDO对不同数据库进行操作时,只需要改变PDO连接参数,而不需要修改应用程序。
连接mysql的示例代码:
$pdo = new PDO('mysql:host=localhost;dbname=database', 'user', 'password');
在PDO实例化时,传递DSN、用户名和密码三个参数,其中DSN是数据源名称,它包括数据库类型、主机名、数据库名等信息。
使用PDO还可以预处理SQL语句,增加程序的安全性,示例代码:
$stmt = $pdo->prepare("SELECT name FROM users WHERE id = ?");$stmt->execute(array(1));
在预处理完SQL语句后,将参数通过execute方法传递给SQL语句,可以有效地防止SQL注入等安全问题。
- 使用mysql扩展连接mysql
mysql扩展是PHP的一种原生方式,可以连接MySQL数据库并执行SQL语句。但是,mysql扩展在PHP7.0之后已不再被支持,官方强烈建议使用mysqli或PDO扩展来操作数据库。
连接mysql的示例代码:
//连接MySQL$link = mysql_connect('localhost', 'user', 'password');if (!$link) { die('Could not connect: ' . mysql_error());}//选择数据库mysql_select_db('database');//执行SQL语句$query = "SELECT name FROM users WHERE id = 1";$result = mysql_query($query);//处理结果集while ($row = mysql_fetch_assoc($result)) { echo $row['name'];}//关闭连接mysql_close($link);
- 使用ORM框架连接mysql
ORM(Object Relational Mapping)框架是一种用来操作数据库的工具,通过将数据库中的表映射成对象,使得开发者可以直接通过面向对象的方式来进行数据库操作。
Laravel框架是一种流行的PHP框架之一,它自带了Eloquent ORM,连接mysql的示例代码:
//连接MySQLDB::connection()->getPdo();//执行SQL语句$results = DB::select('select * from users where id = ?', [1]);//处理结果集foreach ($results as $result) { echo $result->name;}
在这里,我们通过DB类连接数据库,使用select方法执行SQL语句,结果以对象的形式返回,可以通过对象的属性来获取字段数据。
总结
连接mysql数据库的方式有很多,选择哪一种方式既取决于个人习惯,也取决于项目的具体情况。总的来说,mysqli和PDO扩展是比较常用的连接方式,ORM框架则可以更好地解耦应用程序和数据库。为了保证应用程序的安全性,建议使用PDO提供的预处理功能。