PHP中的数据库操作扩展

Posted 司南道长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中的数据库操作扩展相关的知识,希望对你有一定的参考价值。


php数据库扩展

PHP通过安装相应的扩展来实现数据库操作,PHP中一个数据库可能有一个或者多个扩展,其中既有官方的,也有第三方提供的。像mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行连接与操作。

不同的扩展提供基本相近的操作方法,不同的是可能具备一些新特性,以及操作性能可能会有所不同。

mysql扩展进行数据库连接的方法:

$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');

<!-- more -->

mysqli扩展:

$link = mysqli_connect('mysql_host', 'mysql_user', 'mysql_password');

PDO扩展:

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);

如果PHP中没有对应扩展可以通过包管理器安装,再在PHP配置文件‘php.ini’添加‘extension=扩展名.so’开启扩展:例如:

apt install php7.0-mysqli

php.ini:
extension=mysqli.so

PHP数据库操作之连接MySQL数据库

示例:

$host = '127.0.0.1';
$user = 'code1';
$pass = '';

$link = mysql_connect($host,$user,$pass);  //在这里编写数据库连接代码
mysql_select_db('code1');  //选择需要操作的数据库
mysql_query("set names 'utf8'");  //设置当前连接使用的字符编码

PHP数据库操作之执行MySQL查询

在数据库建立连接以后就可以进行查询,采用mysql_query加sql语句的形式向数据库发送查询指令。

$res = mysql_query('select * from user');

对于查询类的语句会返回一个资源句柄(resource),可以通过该资源获取查询结果集中的数据。

$row = mysql_fetch_array($res);

默认的,PHP使用最近的数据库连接执行查询,但如果存在多个连接的情况,则可以通过参数指令从那个连接中进行查询。

$link1 = mysql_connect('127.0.0.1', 'code1', '');
$link2 = mysql_connect('127.0.0.1', 'code1', '', true); //开启一个新的连接
$res = mysql_query('select * from user limit 1', $link1); //从第一个连接中查询数据

PHP数据库操作之插入新数据到MySQL中

和数据查询一样,插入数据其实也是通过执行一个sql语句来实现。

$name = '李四';
$age = 18;
$class = '高三一班';
$sql = "insert into user(name, age, class) values('$name', '$age', '$class')";
mysql_query($sql); //执行插入语句

在mysql中,执行插入语句以后,可以得到自增的主键id,通过PHP的mysql_insert_id函数可以获取该id。这个id的作用非常大,通常可以用来判断是否插入成功,或者作为关联ID进行其他的数据操作。

$uid = mysql_insert_id();

PHP数据库操作之查询分页数据

通过循环可以获取一个查询的所有数据,在实际应用中,我们并不希望一次性获取数据表中的所有数据,那样性能会非常的低,因此会使用翻页功能,每页仅显示10条或者20条数据。

通过mysql的limit可以很容易的实现分页,limit m,n表示从m行后取n行数据,在PHP中我们需要构造m与n来实现获取某一页的所有数据。

假定当前页为$page,每页显示$n条数据,那么m为当前页前面所有的数据,既$m = ($page-1) * $n,在知道了翻页原理以后,那么我们很容易通过构造SQL语句在PHP中实现数据翻页。

//连接数据库
mysql_connect('127.0.0.1', 'code1', '');
mysql_select_db('code1');
mysql_query("set names 'utf8'");
//预设翻页参数
$page = 2;
$pagesize = 2;
//在这里构建分页查询
$m = ($page -1)*$pagesize;

//获取翻页数据
$result = mysql_query($sql);
$data = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
   $data[] = $row;
}
echo '<pre>';
print_r($data);
echo '</pre>';

在上面的例子中,我们使用了$m与$n变量来表示偏移量与每页数据条数,但我们推荐使用更有意义的变量名来表示,比如$pagesize, $start, $offset等,这样更容易理解,有助于团队协作开发。

PHP数据库操作之更新与删除数据

数据的更新与删除相对比较简单,只需要构建好相应的sql语句,然后调用mysql_query执行就能完成相应的更新与删除操作。

更新:

$sql = "update user set name = '曹操' where id=2 limit 1";
if (mysql_query($sql)) {
   echo '更新成功';
}

删除:

$sql = "delete from user where id=2 limit 1";
if (mysql_query($sql)) {
   echo '删除成功';
}

对于删除与更新操作,可以通过mysql_affected_rows函数来获取更新过的数据行数,如果数据没有变化,则结果为0。

$sql = "update user set name = '曹操' where id=2 limit 1";
if (mysql_query($sql)) {
   echo mysql_affected_rows();
}

PHP数据库操作之关闭MySQL连接

当数据库操作完成以后,可以使用mysql_close关闭数据库连接,默认的,当PHP执行完毕以后,会自动的关闭数据库连接。

自动关闭数据库连接:

mysql_closer();

在存在多个数据库连接,对性能要求比较高的情况下,可以设定连接资源参数来关闭指定的数据库连接,有利于在进行完数据库操作之后尽快关闭数据库连接,以节省资源,提高性能。

关闭指定数据库连接:

$link = mysql_connect($host, $user, $pass);
mysql_close($link);

阅读有风险,参考需谨慎,转载请注明出处。


2019年即将结束,迎来的是崭新的一年;预祝未来的一年,你我技术都能有飞跃性进步!PHP中的数据库操作扩展



以上是关于PHP中的数据库操作扩展的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的MySQLi扩展学习MySQLi介绍

PHP中的MySQLi扩展学习MySQLi介绍

PHP项目开发经验整理

Laravel基本使用

什么是 PHP 中的用户级缓存 APCu 扩展?

刷新片段内的视图