PHP连接MySQL数据库操作代码实例解析


Posted in PHP onJuly 11, 2020

方法一:普通方法(面向过程)

首先,先做出如下假设(也适用与方法二和方法三)

$username=your_name;
 $userpass=your_pass;
 $dbhost=localhost;
 $dbdatabase=your_database;

下面是关键步骤:

//生成一个连接
$db_connect=mysql_connect($dbhost,$username,$userpass) or die("Unable to connect to the MySQL!");

//选择一个需要操作的数据库
mysql_select_db($dbdatabase,$db_connect);

//执行MySQL语句
$result=mysql_query("SELECT id,name FROM user");

//提取数据
$row=mysql_fetch_row($result);

//关闭链接
mysql_close($db_connect);

代码注释已经说明了一切。不过这里还需要做一些补充。

①在mysql_connect()、mysql_select_db()等函数之前使用@(错误控制运算符),可以忽略掉系统产生的错误信息,然后我们用die()来自定义错误信息;

②提取数据的时候,除了上面的mysql_fetch_row,常见的还有mysql_fetch_assoc和mysql_fetch_array,具体差别请查阅我的另一篇随笔《PHP中mysql_fetch_row()、mysql_fetch_assoc()和mysql_fetch_array()的联系》;

③对于mysql_query()函数的返回值,如果执行的语句有返回值(如SELECT、SHOW、DESCRIBE等),则返回相应数据(成功时)或FALSE(失败时);如果执行的语句没有返回值(如DELETE、DROP、INSERT、UPDATE等),则返回TRUE(成功时)或FALSE(失败时)。

方法二:面向对象方法

其实这种方法和普通方法非常类似,只是把相应的函数换成了面向对象方法,直接看代码。

$db=new mysqli($dbhost,$username,$userpass,$dbdatabase);
if(mysqli_connect_error()){
  echo 'Could not connect to database.';
  exit;
}

$result=$db->query("SELECT id,name FROM user");
$row=$result->fetch_row();

这里用到的是mysqli,意思就是mysql的扩展,既可以通过面向过程的方式也可以通过面向对象的方式与数据库进行交互,唯一不同的是调用函数(对象方法)的方式不一样。

方法三:PDO方法

PDO其实是PHP Database Objects的缩写,中文即PHP数据库对象。它提供了一种统一的PHP与数据库交互的方法。

这是目前比较流行的一种连接数据库的方法。它的优势在于:只要正确提供数据源,余下对于数据库的基本操作都是一样的。也就是说,同一段代码既可以同MySQL交互,也可以和SQLite3交互,当然也可以和PostgreSQL进行交互,前提是你提供了正确的数据源。下面看一下连接MySQL的代码:

$dsn='mysql:host='.$dbhost.';dbname='.$dbdatabase.';'
$dbh=new PDO($dsn,$username,$userpass);

如果是SQLite3,直接使用下面的代码:

$dsn='sqlite3:"C:\sqlite\user.db"';
$dbh=new PDO($dsn);

如果是PostgreSQL,下面的代码能够对付:

$dsn='pgsql:host='.$dbhost.' port=5432 dbname='.$dbdatabase.' user='.$username.' password='.$userpass;
$dbh=new PDO($dsn);

跟数据库成功建立连接之后,下面就只需要从数据库获取数据或插入更新数据,实例代码如下:

$stmt=$dbh->query('SELECT id,name FROM user');
$row=$stmt->fetch();

至此,文章告一段落。当然,上面只是简单的介绍了一下PHP与数据库有关的最简单的操作,后面还有很多比如插入、排序、防止SQL注入等等一些方面的知识需要深入学习。希望有机会能够和大家一起探讨,共同进步。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
请php正则走开
Mar 15 PHP
array_multisort实现PHP多维数组排序示例讲解
Jan 04 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
详解PHP中strlen和mb_strlen函数的区别
Mar 07 PHP
php中隐形字符65279(utf-8的BOM头)问题
Aug 16 PHP
PHP操作MySQL事务实例
Nov 05 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
PHP加密解密实例分析
Dec 25 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 #PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
Jul 10 #PHP
PHP实现简易用户登录系统
Jul 10 #PHP
PHP二维数组分页2种实现方法解析
Jul 09 #PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 #PHP
PHP利用curl发送HTTP请求的实例代码
Jul 09 #PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 #PHP
You might like
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python yield 小结和实例
2014/04/25 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
Python数据结构之单链表详解
2017/09/12 Python
Python模块文件结构代码详解
2018/02/03 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python能自学吗
2020/06/18 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
大学毕业生简单自荐信
2013/11/05 职场文书
工程师岗位职责
2013/11/08 职场文书
财务经理岗位职责
2013/11/09 职场文书
求职自荐信格式
2013/12/04 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
Python爬取某拍短视频
2021/06/11 Python
APP界面设计技巧和注意事项
2022/04/29 杂记