PHP 连接 MySQL 数据库使用完整实例

小助手读文章 00:00 / 00:00

温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。

在 PHP 开发中,我们时常会用到数据库,PHP 对数据库连接原生支持 mysqlmysqli 两个扩展(Extension),mysql 是 PHP 操作 MySQL 资料库最原始的扩展,mysqlii 代表 Improvement,提更了相对进阶的功能,就 Extension 而言,本身也增加了安全性;另外,mysql 每次连接都会打开一个连接的进程,而 mysqli 多次运行都将使用同一连接进程,从而减少了服务器的开销,加上新版 PHP 已经逐步取消 mysql方法,因此mysqli 使用场景会更多。

定义参数

<?php
define('HOST','127.0.0.1');
define('USER','vircloud');
define('PASS','Pass01@');
define('DBNAME','vircloud.net');
?>

连接数据库

<?php
$link = mysqli_connect(HOST,USER,PASS) or die('提示:数据库连接失败!');
?>

选择数据表

<?php
mysqli_select_db($link, DBNAME) or die('提示:无法使用数据表!');
?>

设置编码

<?php
mysqli_set_charset($link, 'utf8');
?>

执行操作

增、删、改、查 操作均可以直接写 SQL 并执行:

<?php
$u_sql = 'select id,quota,download,upload from users where username = \''.$username.'\' ;';
$u_result = mysqli_query($link, $u_sql) or die('获取用户信息失败:'.mysqli_error($link));
?>

判断结果

<?php
if(mysqli_num_rows($u_result) != 0){
     $u_row = mysqli_fetch_assoc($u_result);
     echo '用户:'.$username.',配额:'.$u_row['quota'];
/*
返回多笔的话可以使用 mysqli_fetch_all() 函数来循环输出
     while($u_row = mysqli_fetch_all($u_result,MYSQLI_ASSOC)){
          echo  '用户:'. $u_row['username'];
          echo  '配额:'.$u_row['quota'];
     }
*/
}else{
     echo '查无资料';
}
?>

释放结果集

<?php
mysqli_free_result($u_result);
?>

关闭连接

<?php
mysqli_close($link);
?>

扩展

MySQL 取得资料的三个函数

  • fetch_array():将读出的资料同时以数字与栏位名称各自存一次在阵列之中,相当于同一个值会出现两次;
  • fetch_assoc():将读出的资料 Key 值设定为该栏位的栏位名称;
  • fetch_row():将读出的资料Key值设定为依序下去的数字。

示例

UIDNameEMAILPASSWORD
1RicharLin[email protected]1234567

使用 fetch_array()

array(
  [0] => '1'
  [UID] => '1'
  [1] => 'RicharLin'
  [Name] => 'RicharLin'
  [2] => '[email protected]'
  [EMAIL] => '[email protected]'
  [3] => '1234567'
  [PASSWORD] => '1234567'
)

使用 fetch_assoc()

array(
  [UID] => '1'
  [Name] => 'RicharLin'
  [EMAIL] => '[email protected]'
  [PASSWORD] => '1234567'
)

使用 fetch_row()

array(
  [0] => '1'
  [1] => 'RicharLin'
  [2] => '[email protected]'
  [3] => '1234567'
)

总结

其实正常情况下写程式都习惯会用 fetch_array(),因为它是最通用的使用方式;

但有些时候如果你需要将一大笔输出的资料转换成 JSON 时,fetch_array() 就会显得有点累赘了,使用fetch_assoc()就可以获得比较精简的资料阵列。

而有些时候如果你需要将输出的阵列依照编号使用时 fetch_row() 也将会是一个很适合的方式,可以轻易的计算数量并且按照数字依序进行,无疑是个不错的选择。


ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 phpmysql连接使用范例 的文章

 本文最后更新于 2021/04/07 15:37:49,可能因经年累月而与现状有所差异

 引用转载请注明: VirCloud's Blog > 运维 > PHP 连接 MySQL 数据库使用完整实例